gpt4 book ai didi

Dart 双分精度

转载 作者:行者123 更新时间:2023-12-03 02:49:39 25 4
gpt4 key购买 nike

执行此操作的正确方法是什么?

399.9 / 100

我希望看到的是
3.999

但结果是
3.9989999999999997

最佳答案

你看到的结果是正确的,只是不是你想要的。

double 不是精确的值。通过写入 399.9 得到的 double 实际上是精确值。

399.8999999999999772626324556767940521240234375



这是最接近精确值 399.9 的可用 double 值。任何其他 double 值都至少与 399.9 相差那么远。

然后除以 100。同样,结果并不精确,但最接近的 double 值具有精确值

3.99899999999999966604491419275291264057159423828125



这与您通过编写 3.999 得到的不同,这是确切的值:

3.999000000000000110134124042815528810024261474609375



在每一步,double 运算都将误差最小化,但是由于您执行多个步骤,最终结果与最接近数学结果的 double 不同。

您需要做什么取决于您的实际需求。

如果您想始终使用两位有效数字进行计算,那么我只需将我的数字乘以 100 并将所有运算作为整数运算进行,直到最后除以 100。

如果您有一个中间结果并希望将其四舍五入为两位数,我会按照 Fy Z1K 所说的进行操作:

  result = (result * 100).round() / 100;

关于 Dart 双分精度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60654642/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com