Java:
float big = (float) 1e12;
float ulp = Math.ulp(big);
float result = (big + 2/3*ulp) - big;
结果
是0.0
,而我期待的是ulp
(65536.0
)。有人能解释一下为什么吗?
最佳答案
这是因为 2/3 = 0(整数除法),尝试 2.0/3
关于java - Java 中非常大的 float 的舍入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23236052/