繁体   English   中英

NSDecimalNumber值的比例和精度

[英]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中, DecimalNSDecimalNumber很容易桥接,你应该尽可能地使用Decimal

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM