在Swift中检查字符串是否为有效的双倍值 [英] Check if string is a valid double value in Swift
本文介绍了在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屋!
查看全文