Double数据类型的问题



我似乎得到了某些数字的双精度值的更精确的版本。

例如69.55554,当赋值给双变量时,保存为69.555539999999993

我甚至尝试使用NSNumber和NSDecimalNumber来代替,但无济于事。我用的是swift,还没有用objective-c测试过。

关于为什么会发生这种情况以及如何修复它(或围绕它工作)的任何想法?谢谢!

使用NSDecimalNumber的代码示例

var doubleNumber  : Double  =   69.55554
var decimalNumber           =   NSDecimalNumber(double: doubleNumber)
var label   =   UILabel(frame: CGRectMake(10, 20, 200, 40))
label.text  =   "(decimalNumber.doubleValue)"
self.view.addSubview(label)

正确。这是由于浮点值的机器精度造成的。

值不精确,但尽可能接近。

0x4051638DF7A4E7AB = 69.555539999999993483470461797 <69.55554 & lt;

相关内容

  • 没有找到相关文章

最新更新