Swift中的Java BigDecimal

Swift中的Java BigDecimal,第1张

概述我可以使用什么数据类型来解析 Java BigDecimal?在Objective-C中,可以使用NSDecimalNumber来完成.我有 Swift原生解决方案(不使用NSDecimalNumber)吗? 这可能不是你想要的,因为你说的是​​快速原生的解决方案. 但是在Swift 3中,一个旧的基于C结构的NSDecimal被导入为Decimal,并且已经对它做了一个很大的重新安排,就像说“它 我可以使用什么数据类型来解析 Java BigDecimal?在Objective-C中,可以使用NSDecimalNumber来完成.我有 Swift原生解决方案(不使用NSDecimalNumber)吗? 这可能不是你想要的,因为你说的是​​快速原生的解决方案.
但是在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所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1035709.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-24
下一篇2022-05-24

发表评论

登录后才能评论

评论列表(0条)

    保存