我还没有找到任何答案。但我想将任何数字四舍五入到十。像这样:
32 -> 40
25 -> 30
88 -> 90
但是使用下面的代码,我会四舍五入。我如何才能始终四舍五入而不是最接近的十位?
Math.round(number / 10.0) * 10;
最佳答案
查看我的 previous answer另一个关于如何处理负数的问题。
要向下舍入到最接近的 10 的倍数,只需除以 10 再乘以 10,因为整数除法总是向下舍入(向零)。
roundDown = value / 10 * 10;
要向上取整,在向下取整前加 9。
roundUp = (value + 9) / 10 * 10;
要向上取整,在向下取整前加 5。
roundHalfUp = (value + 5) / 10 * 10;
测试
System.out.println(" Down Up Half-Up");
int[] arr = { 32, 25, 88, 50 };
for (int v : arr)
System.out.printf("%2d %4d %4d %5d%n", v, v / 10 * 10, (v + 9) / 10 * 10, (v + 6) / 10 * 10);
输出
Down Up Half-Up
32 30 40 30
25 20 30 30
88 80 90 90
50 50 50 50
关于java - 在 Java 中总是四舍五入到十,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53905726/