检查字符串在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