字符串值没有可变行为 (swift 3)

String value is not have mutable behaviour (swift 3)

提问人:Lalit Waliyan 提问时间:10/17/2017 最后编辑:Lalit Waliyan 更新时间:10/17/2017 访问量:110

问:

我将我的 String 值转换为 Double 显示在下面的代码中。在最后一个变量中,我得到字符串值,即 ex - 1435.76 但是当我转换为 Double 值时显示 nill。请帮我摆脱这个.提前致谢

self.cart = result.value(forKey: "cart") as! NSMutableArray
self.totalsDic = result.value(forKey: "totals") as! NSMutableDictionary
print(self.totalsDic)
// print(self.cart)

let total = self.totalsDic.object(forKey: "total") as! NSMutableDictionary
let final = total.object(forKey: "total") as? String
// final = final?.replacingOccurrences(of: "Rs.", with: "")


let myDouble1 = NumberFormatter().number(from: final!)?.doubleValue
print("My double: \(String(describing: myDouble))")
let myDouble2 = Double(final!)
iOS的 迅速 斯威夫特3 可变

评论

0赞 Sandeep Bhandari 10/17/2017
Double(final!)仅当 final 为 nil 或包含无法转换为 Double 的字符串时,才返回 nil。因此,您最好的选择是使用它,这将确保如果它无法将字符串转换为 Double 将下降到安全值 0。最后,而不是使用 !(强制展开)使用或根据您的需要.doubleValueif letguard let
0赞 Lalit Waliyan 10/17/2017
@Sandeep Bhandari,正如我提到的,final 具有值,而 .doublevalue 也返回 nill 以及我如何检查字符串是可变的还是不可变的。
0赞 Sandeep Bhandari 10/17/2017
两件事 1.字符串是可变的还是不可变的如何影响 String 到 Double 的转换???2. 您已宣布最终为让。你期望它如何可变?let 并不意味着它是一个不可变的字符串??
0赞 Lalit Waliyan 10/17/2017
@SandeepBhandari,感谢您的帮助,其实我现在测试一下,打印时将值转换为1000以下可选(963.837655277)。它不会转换高于 1000 的值。我不知道为什么??
0赞 Sandeep Bhandari 10/17/2017
不可能!!Double 的范围比 1000 大得多,我用 1234.56 测试了它工作正常。所以还有其他问题

答: 暂无答案