This question already has answers here:
How can a primitive float value be -0.0? What does that mean?
(5个答案)
5个月前关闭。
我需要舍入一个小的负数以返回0.0。但是,我得到的值是负零。以下代码演示了该问题:
有办法解决吗?
(
Nit:使用
(5个答案)
5个月前关闭。
我需要舍入一个小的负数以返回0.0。但是,我得到的值是负零。以下代码演示了该问题:
double value = -0.000000001;
double roundedValue = Double.valueOf(String.format(Locale.US, "%.4f", value));
System.out.println(roundedValue); // I need the roundedValue to be equal 0.0 (not -0.0)
有办法解决吗?
最佳答案
您可以显式处理负零的情况:
roundedValue = (roundedValue == 0.0 && 1 / roundedValue < 0) ? 0 : roundedValue;
(
1 / roundedValue < 0
从this answer检查负零)Nit:使用
Double.parseInt
而不是valueOf
,以避免不必要的装箱和立即拆箱。关于java - 如何在Java中舍入一个小的负 double 而不导致负零,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/61388914/
10-11 01:32