检查字符串在Swift中是否为有效的double值

在Swift中,如何检查字符串是否为有效的双精度值?我已经使用从下面的扩展这个问题的(但为float),但如果该值不能被转换,它简单地返回“0”:

extension String {

var doubleValue:Double? {

return (self as NSString).doubleValue

}

}

理想情况下,我希望它返回,nil以便可以将其包含在中if-let,如下所示:

if let i = str.doubleValue {

object.price = i

} else {

// Tell user the value is invalid

}

回答:

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

extension String {

struct NumFormatter {

static let instance = NumberFormatter()

}

var doubleValue: Double? {

return NumFormatter.instance.number(from: self)?.doubleValue

}

var integerValue: Int? {

return NumFormatter.instance.number(from: self)?.intValue

}

}

以上是 检查字符串在Swift中是否为有效的double值 的全部内容, 来源链接: utcz.com/qa/412825.html

回到顶部