【问题标题】:Dart - Subtracting some double values gives wrong resultDart - 减去一些双精度值会产生错误的结果
【发布时间】:2019-06-16 13:45:45
【问题描述】:

我随机选择了两个double 号码:

double a = 7918.52;
double b = 5000.00;

我希望从a - b 获得2918.52
嗯,它给了我2918.5200000000004 的结果,这看起来很奇怪。

print(a - b); // -> 2918.5200000000004

但如果我将double a 更改为7918.54,我将得到2918.54 的预期结果。

有人可以向我解释为什么某些 double 值会导致意外的舍入问题,而另一些则不会?

【问题讨论】:

标签: dart floating-point double floating-accuracy


【解决方案1】:

原因是 floating-point arithmetic 以及 Dart 使用 IEEE 754 standard 就我而言。

所有使用浮点运算的语言都会发生这种情况。您可以阅读similar questions 了解其他编程语言。

现代编程语言中的General question about floating-point arithmetic

【讨论】:

  • 谢谢。这就解释了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-15
  • 1970-01-01
相关资源
最近更新 更多