在Swift中检查字符串是否为有效的双倍值 [英] Check if string is a valid double value in Swift

查看:80
本文介绍了在Swift中检查字符串是否为有效的双倍值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在Swift中,如何检查字符串是否为有效的双重值?我从这个问题(但作为浮动)使用了以下扩展名,但是如果该值无法转换,那么简单返回0:

In Swift, how can one check if a string is a valid double value? I have been using the following extension from this question (but as a float) but if the value cannot be converted, it simply returns "0":

extension String {
    var doubleValue:Double? {
        return (self as NSString).doubleValue
    }
}

理想情况下,我希望它返回 nil ,所以它可以被抓到一个 if-let

Ideally, I would like it to return nil so it can be caught in an if-let, like so:

if let i = str.doubleValue {
    object.price = i
} else {
    // Tell user the value is invalid
}


推荐答案

每次进行转换时,不要创建数字格式化程序确实更有效:

It is indeed more efficient not to create a number formatter every time we do a conversion:

extension String {
    struct NumberFormatter {
        static let instance = NSNumberFormatter()
    }
    var doubleValue:Double? {
        return NumberFormatter.instance.numberFromString(self)?.doubleValue
    }
    var integerValue:Int? {
        return NumberFormatter.instance.numberFromString(self)?.integerValue
    }
}

这篇关于在Swift中检查字符串是否为有效的双倍值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆