Java 中的 Math.round() 方法

发布于 2024-09-25 15:54:25 字数 122 浏览 2 评论 0原文

Math.round(4816.5) 返回 4817。

我只想在小数 > 5 并且不 >= 5 时向上舍入。所以在这里,我需要结果为4816。

请给我解决方案。

Math.round(4816.5) is returning 4817.

I want to round up only if decimal is >5 and not >=5. So here, I need result as 4816.

Please give me solutions.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

幸福不弃 2024-10-02 15:54:25

Math.round(n)(long) Math.floor(n + 0.5) 基本相同,因此您只需稍微修改该算法即可:

long rounded = (long) Math.ceil(n - 0.5);

Math.round(n) is basically the same as (long) Math.floor(n + 0.5) so you can just modify that algorithm slightly:

long rounded = (long) Math.ceil(n - 0.5);
九八野马 2024-10-02 15:54:25

使用双重否定:

-Math.round(-n)

Use a double negative:

-Math.round(-n)
静若繁花 2024-10-02 15:54:25

使用 HALF_DOWN 的 RoundingMode 并让 Java 处理其余的事情:

        BigDecimal value = new BigDecimal(4816.5);
        value = value.setScale(0, RoundingMode.HALF_DOWN);
        long result = value.longValue();
        System.out.println(result);

Use a RoundingMode of HALF_DOWN and let Java take care of the rest:

        BigDecimal value = new BigDecimal(4816.5);
        value = value.setScale(0, RoundingMode.HALF_DOWN);
        long result = value.longValue();
        System.out.println(result);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文