
但是在Swift 3中,一个旧的基于C结构的NSDecimal被导入为Decimal,并且已经对它做了一个很大的重新安排,就像说“它几乎是Swift-native”.
let deca = 1.23 as Decimal //<- This actually may produce some conversion error,while `ExpressibleByfloatliteral` uses `Double` as an intermediate value.let decb = 0.01 as Decimalprint(deca + decb == 1.24) //->true
更新添加了一个简单的示例,您可以在Double(二进制浮点系统)中找到计算错误. (在Xcode 8 beta 6中测试过)
let dblc = 0.000001let dbld = 100 as Doublelet dble = 0.0001print(dblc * dbld == dble) //->false (as Double cannot represent decimal fractions precisely)let decc = Decimal(string: "0.000001")! //<- avoIDing conversion errorlet decd = 100 as Decimal //<- integer literal may not generate conversion errorlet dece = Decimal(string: "0.0001")!print(decc * decd == dece) //->true总结
以上是内存溢出为你收集整理的Swift中的Java BigDecimal全部内容,希望文章能够帮你解决Swift中的Java BigDecimal所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)