如何在swift中将字符串转换为双精度

如何在swift中将字符串转换为双精度,swift,Swift,值取自任何可能包含字符串的字典 if value is String { total += Double(value) } 此代码给出错误“无法使用类型为“(Any)”的参数列表调用类型为“Double”的初始值设定项” 此代码给出的错误“可选类型'Double'的值”未展开;您的意思是使用“!”还是“?”Double(fromString)是一个可失败的初始值设定项,结果可能为零,因此它返回可选的Double? 您可以使用Swift的零合并运算符: if let item =

值取自任何可能包含字符串的字典

if value is String {
    total += Double(value)    
}
此代码给出错误“无法使用类型为“(Any)”的参数列表调用类型为“Double”的初始值设定项”

此代码给出的错误“可选类型'Double'的值”未展开;您的意思是使用“!”还是“?”

Double(fromString)
是一个可失败的初始值设定项,结果可能为零,因此它返回可选的
Double?

您可以使用Swift的零合并运算符:

if let item = value as? String {
    total += Double(item) ?? 0
}

当值可能为空时,预测任何值有时可能会出现致命错误。因此,使用

可选类型“Double”的值未展开;你想用“!”吗还是“?”

出现此错误是因为您试图向
总计添加可选值

Double(item)
生成一个可选结果,以便您可以将其添加到中(如果让链接)

    if let item = value as? String, let doubleVal = Double(item) {
        total += doubleVal
    }

将Swift字符串转换为Double

使用Double、Float、CGFloat转换浮点值(实数)


将Swift字符串转换为Int 使用Int和诸如Int32、UInt64等变量来转换整数值


查看此博客了解更多详细信息

您只需选择绑定
Double(item)
<代码>如果让项目=值为?字符串,让itemValue=Double(item){total+=itemValue}
您正在用
检查,如果让
值是一个字符串,这很好。但是没有任何东西可以保证
Double(item)
是有效的。样本测试:
设d1=Double(“3”);设d2=Double(“abc”)
d2
为零。如果let
,您还需要为其执行一个
:如果let item=value as?字符串{if let doubleValue=Double(item){total+=doubleValue}}
,如果let item=value as,它也可以写成
?字符串,让doubleValue=Double(item){total+=doubleValue}
如果找不到一个
Double
值,那么不添加任何内容不是更好吗?@RakeshaShastri将零添加到总数有什么不对?@LeoDabus不必要且多余?
    if let item = value as? String, let doubleVal = Double(item) {
        total += doubleVal
    }
let lessPrecisePI = Float("3.14")
let morePrecisePI = Double("3.1415926536")
let width = CGFloat(Double("200.0")!)
let wholeNumber = Int("27")
let smallInt = Int16("34")
let largeInt = Int64("39384")