gpt4 book ai didi

java - 舍入函数提供不同的值

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

我正在使用 math.round() 进行四舍五入。这是代码:

double value=0.14499999970197677;
double rounded;
rounded=Math.round( value* 1000.0) / 1000.0;
rounded=Math.round( rounded* 100.0) / 100.0;
System.out.println("Final value :" + rounded);

我的期望是它应该返回 0.15 但它正在返回 0.14另外,如果值为 0.13499999970197677,那么它返回 0.14,为什么不是 0.13我已经浏览了许多与四舍五入相关的链接。但仍不清楚。请清楚地告诉我为什么这两个数字都会发生这种情况?

最佳答案

浮点运算并不精确。第一次赋值后,rounded 为 0.145,乘以 100 的结果将被截断,因此它将类似于 14.499999999999,四舍五入为 14,除以 100,如您所见,得到 0.14。

更新:实际上,除以 1000 已经被截断,因此结果将更像 0.1449999999。

关于java - 舍入函数提供不同的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56746725/

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