如何避免在 double 中四舍五入为 0
How to avoid rounding to 0 in a double
我正在努力获取双精度值以设置为正确的数字。
在下面的代码中:
double d = (double) (500 / 1000) / 9000;
d
设置为 0.0
。
我知道双打有限制,也许我的问题是我超出了限制,但如果超出了限制,有没有更合适的方法来存储此计算结果?
将 (500 / 1000) / 9000
更改为 (500.0 / 1000) / 9000
以执行浮点除法而不是 int
除法。 500 / 1000
returns 0
而 500.0 / 1000
returns 0.5
.
您正在用整数计算,请尝试用双精度数代替:
double d = (500.0 / 1000.0) / 9000.0;
我正在努力获取双精度值以设置为正确的数字。
在下面的代码中:
double d = (double) (500 / 1000) / 9000;
d
设置为 0.0
。
我知道双打有限制,也许我的问题是我超出了限制,但如果超出了限制,有没有更合适的方法来存储此计算结果?
将 (500 / 1000) / 9000
更改为 (500.0 / 1000) / 9000
以执行浮点除法而不是 int
除法。 500 / 1000
returns 0
而 500.0 / 1000
returns 0.5
.
您正在用整数计算,请尝试用双精度数代替:
double d = (500.0 / 1000.0) / 9000.0;