如何避免在 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 0500.0 / 1000 returns 0.5.

您正在用整数计算,请尝试用双精度数代替:

double d = (500.0 / 1000.0) / 9000.0;