值取自可能包含字符串的Any字典
if value is String {
total += Double(value)
}
此代码给出错误“无法使用类型为((Any)''的参数列表调用类型为'Double'的初始化程序“)
if let item = value as? String {
total += Double(item)
}
此代码给出错误“可选类型'Double'的值?”没有包装;您的意思是使用'!'或“?”?”
答案 0 :(得分:1)
Double(fromString)
是一个失败的初始化程序,结果可能为nil,因此它返回一个可选的Double?
您可以使用Swift的Nil-Coalescing运算符:
if let item = value as? String {
total += Double(item) ?? 0
}
答案 1 :(得分:1)
当值可能为null时,预测任何值有时可能会导致致命错误。因此,使用??
设置默认值是一个好习惯答案 2 :(得分:0)
可选类型“ Double”的值不展开你是说用'!'还是“?”?
出现此错误是因为您正在尝试向total
添加可选值。
Double(item)
会产生一个可选结果,因此您可以将其添加到 if-let 链中。
if let item = value as? String, let doubleVal = Double(item) {
total += doubleVal
}
答案 3 :(得分:0)
将Swift String转换为Double
使用Double,Float,CGFloat转换浮点值(实数)。
let lessPrecisePI = Float("3.14")
let morePrecisePI = Double("3.1415926536")
let width = CGFloat(Double("200.0")!)
将Swift String转换为Int 使用Int和Int32,UInt64等变体来转换整数值。
let wholeNumber = Int("27")
let smallInt = Int16("34")
let largeInt = Int64("39384")
查看此博客以获取更多详细信息,supereasyapps.com