如何在Java中对小负双数进行四舍五入而不造成负零[重复]。


我需要四舍五入一个小的负数来返回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 来检查负零,从 本回答)


硝:使用 Double.parseInt 而非 valueOf以避免不必要的装箱和立即拆箱。

给TA打赏
共{{data.count}}人
人已打赏
未分类

在JSON中循环(Foursquare API)。

2022-9-8 1:17:20

未分类

将谷歌日历添加到你的网站上,会不会使它不再是静态的?

2022-9-8 1:28:35

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索