| 测试已测试 | ✓ |
| 语言语言 | SwiftSwift |
| 许可证 | MIT |
| 发布最新发布 | 2016年2月 |
| SPM支持 SPM | ✗ |
由 Rich Hodgkins 维护。
String 创建abs(),isNaN() 方法minusOne 类型的 var使用 Cocoapods(使用 Swift 的测试版)
pod 'RDHDecimalNumberOperations', '2.0.0'Carthage 也得到支持。
或者,只需将 RDHDecimalNumberOperations.swift 添加到您的项目即可。
支持所有标准运算符(对于新的 Swift 运算符,请参阅 溢出)
+-*/+=-=*=/=++(作为前缀和后缀)--(作为前缀和后缀)==!=>>=<<=还有幂运算符
** - 将 NSDecimalNumber 作为一个 Int 指数的幂**= - 在原地将 NSDecimalNumber 作为一个 Int 指数的幂:+ 和 :- 的单子形式都工作正常
let two = NSDecimalNumber(string: "2")
let minusTwo = -twoSwift 中还引入了溢出运算符,这些运算符也被支持以防止溢出、下溢、精度损失和更常见的除以零引发的异常。
&+&-&*&/&**(与一个 Int 指数一起)这意味着下面的代码将 不 引发异常,而是返回 NSDecimalNumber.notANumber()
let notANumber = NSDecimalNumber.one() / NSDecimalNumber.zero()除了运算符支持之外,还增加了一种从 String 获取 NSDecimalNumber 的便利方法。
let numberFromString = "1".decimalValue不要忘记,您已经可以利用 IntegerLiteralConvertible(从 NSNumber 继承而来)了
let numberFromInt: NSDecimalNumber = 10已向 NSRoundingMode 枚举添加了四舍五入方法
let twoThirds = NSDecimalNumber(string: "2") / NSDecimalNumber(string: "3")
let roundedNumber = NSRoundingMode.RoundUp.round(twoThirds, scale: 0)
println("\(twoThirds) rounded up to \(roundedNumber)")为了更快、更容易地进行四舍五入,已添加了一个操作符 ~
let twoThirds = NSDecimalNumber(string: "2") / NSDecimalNumber(string: "3")
let roundedNumber = twoThirds ~ (roundingMode: NSRoundingMode.RoundUp, scale: 0)
println("\(twoThirds) rounded up to \(roundedNumber)")并且对于就地四舍五入
let twoThirds = NSDecimalNumber(string: "2") / NSDecimalNumber(string: "3")
var roundedNumber = twoThirds
roundedNumber ~= (NSRoundingMode.RoundUp, 0)
println("\(twoThirds) rounded up to \(roundedNumber)")输出
0.6666 rounded up to 1