Swift中的Java BigDecimal
发布时间:2020-12-14 05:31:05 所属栏目:百科 来源:网络整理
导读:我可以使用什么数据类型来解析 Java BigDecimal?在Objective-C中,可以使用NSDecimalNumber来完成.我有 Swift原生解决方案(不使用NSDecimalNumber)吗? 这可能不是你想要的,因为你说的是??快速原生的解决方案. 但是在Swift 3中,一个旧的基于C结构的NSDecimal
我可以使用什么数据类型来解析
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 Decimal print(deca + decb == 1.24) //->true 更新添加了一个简单的示例,您可以在Double(二进制浮点系统)中找到计算错误. (在Xcode 8 beta 6中测试过) let dblc = 0.000001 let dbld = 100 as Double let dble = 0.0001 print(dblc * dbld == dble) //->false (as Double cannot represent decimal fractions precisely) let decc = Decimal(string: "0.000001")! //<- avoiding conversion error let decd = 100 as Decimal //<- integer literal may not generate conversion error let dece = Decimal(string: "0.0001")! print(decc * decd == dece) //->true (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |