[英]Scale and Precision of NSDecimalNumber value
让我们假设我有一个NSDecimalNumber
类型的变量v
let v = 34.596904
采用自己的格式。
我想知道这个数字的精确度和规模,而不是默认值。 我没有在NSDecimalNumber
类中找到任何给出这些值的函数,或者有人想对它的工作方式有所了解。
precision = 8
scale = 6
precision是数字中有效数字的计数,scale是十进制后有效数字的计数
此扩展程序将为您提供唯一示例的特定值:
extension Decimal {
var scale: Int {
return -self.exponent
}
var precision: Int {
return Int(floor(log10((self.significand as NSDecimalNumber).doubleValue)))+1
}
}
用法:
let v: NSDecimalNumber = NSDecimalNumber(string: "34.596904")
print("precision=\((v as Decimal).precision)") //->precision=8
print("scale=\((v as Decimal).scale)") //->scale=6
但是我无法确定这是否会在你想到的所有情况下产生预期的结果,因为你只展示了一个例子......
另外,在Swift中, Decimal
和NSDecimalNumber
很容易桥接,你应该尽可能地使用Decimal
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.