如何在 Java 中正确舍入值?

How do i Round Values Properly in Java?

我想得到如下所示的舍入值。

round (1.4) = 1
round (1.5) = 1
round (1.6) = 2

如何使用 java 代码将第 (1.5) 轮的结果变为第 1 轮而不是第 2 轮?

因为你想从 .6 中获取上限值然后使用这个

x = Math.floor(x + 0.4);

正如我在评论中提到的,您可以在调用 Math.round 之前减去 0.1。喜欢,

DoubleStream.of(1.4, 1.5, 1.59, 1.6)
        .mapToInt(x -> (int) Math.round(x - 0.1))
        .forEach(System.out::println);

输出(按要求)

1
1
1
2