我正在将一个项目从 Swift 2.2 迁移到 Swift 3,并且尽可能地试图摆脱旧的 Cocoa 数据类型。
我的问题在于:将 NSDecimalNumber
迁移到 Decimal
。
在 Swift 2.2 中,我曾经双向桥接 NSDecimalNumber
到 Double
:
let double = 3.14
let decimalNumber = NSDecimalNumber(value: double)
let doubleFromDecimal = decimalNumber.doubleValue
现在,切换到Swift 3:
let double = 3.14
let decimal = Decimal(double)
let doubleFromDecimal = ???
decimal.doubleValue
不存在,也没有Double(decimal)
,甚至没有decimal as Double
......
我想到的唯一方法是:
let doubleFromDecimal = (decimal as NSDecimalNumber).doubleValue
但是完全傻瓜式地试图摆脱 NSDecimalNumber
并不明智,因为有时候也需要使用它...
嗯,要么我错过了一些显而易见的东西,如果是这样,我请求您的原谅浪费了您的时间,否则,在我看来需要解决一个漏洞...
先感谢您的帮助。
编辑:关于Swift 4,没有更多关于此主题的信息。
编辑:关于Swift 5,没有更多关于此主题的信息。
myDecimal + 1
)和比较都比NSDecimalNumber更直观。 - Leonid Usov