在Java中,总是将其四舍五入到十
我还没有找到任何答案。但我想把任何数字凑成十个。像这样:在Java中,总是将其四舍五入到十,java,Java,我还没有找到任何答案。但我想把任何数字凑成十个。像这样: 32 -> 40 25 -> 30 88 -> 90 但有了下面的代码,我就四舍五入了。我怎么能总是四舍五入,而不是十舍五入呢 Math.round(number / 10.0) * 10; 舍入可以向上舍入,也可以向下舍入,具体取决于余数。相反,您应该使用: 舍入可以向上舍入,也可以向下舍入,具体取决于余数。相反,您应该使用: 从数学上讲,您需要一个值加上余数10的差值。您可以得到具有%模数的余数。像 int[]
32 -> 40
25 -> 30
88 -> 90
但有了下面的代码,我就四舍五入了。我怎么能总是四舍五入,而不是十舍五入呢
Math.round(number / 10.0) * 10;
舍入可以向上舍入,也可以向下舍入,具体取决于余数。相反,您应该使用:
舍入可以向上舍入,也可以向下舍入,具体取决于余数。相反,您应该使用:
从数学上讲,您需要一个值加上余数10的差值。您可以得到具有%模数的余数。像
int[] arr = { 32, 25, 88 };
for (int v : arr) {
System.out.printf("%d -> %d%n", v, v + (10 - (v % 10)));
}
按要求的产出
32 -> 40
25 -> 30
88 -> 90
你说你总是把他们聚在一起。如果90应该保持为90,则测试零的余数。像
for (int v : arr) {
int r = v % 10;
if (r != 0) {
System.out.printf("%d -> %d%n", v, v + 10 - r);
} else {
System.out.printf("%d -> %d%n", v, v);
}
}
从数学上讲,您需要一个值加上余数10的差值。您可以得到具有%模数的余数。像
int[] arr = { 32, 25, 88 };
for (int v : arr) {
System.out.printf("%d -> %d%n", v, v + (10 - (v % 10)));
}
按要求的产出
32 -> 40
25 -> 30
88 -> 90
你说你总是把他们聚在一起。如果90应该保持为90,则测试零的余数。像
for (int v : arr) {
int r = v % 10;
if (r != 0) {
System.out.printf("%d -> %d%n", v, v + 10 - r);
} else {
System.out.printf("%d -> %d%n", v, v);
}
}
您可以仅使用Java整数算术来完成此操作:
x % 10 == 0 ? x : ((x / 10) + 1) * 10
因此:
将打印:
50
您可以仅使用Java整数算术来完成此操作:
x % 10 == 0 ? x : ((x / 10) + 1) * 10
因此:
将打印:
50
关于如何处理负数,请参见我的另一个问题
要将整数除法向下舍入到最接近的10的倍数,只需将整数除法除以10再乘以10即可,因为整数除法总是向下舍入到零
roundDown = value / 10 * 10;
若要向上取整,请在向下取整之前添加9
roundUp = (value + 9) / 10 * 10;
roundHalfUp = (value + 5) / 10 * 10;
要向上舍入一半,请在向下舍入之前加5
roundUp = (value + 9) / 10 * 10;
roundHalfUp = (value + 5) / 10 * 10;
试验
输出
上下对半
32 30 40 30
25 20 30 30
88 80 90 90
50 50 50 50
关于如何处理负数,请参见我的另一个问题
要将整数除法向下舍入到最接近的10的倍数,只需将整数除法除以10再乘以10即可,因为整数除法总是向下舍入到零
roundDown = value / 10 * 10;
若要向上取整,请在向下取整之前添加9
roundUp = (value + 9) / 10 * 10;
roundHalfUp = (value + 5) / 10 * 10;
要向上舍入一半,请在向下舍入之前加5
roundUp = (value + 9) / 10 * 10;
roundHalfUp = (value + 5) / 10 * 10;
试验
输出
上下对半
32 30 40 30
25 20 30 30
88 80 90 90
50 50 50 50
错误:90->100@Andreas很公平。但欧普说他总是凑在一起。添加了附录。错误:90->100@Andreas很公平。但欧普说他总是凑在一起。增加了一个增编。