我必须输入一个数字并将最后一位四舍五入为 0 或 5。
- 从 0,1,2 到 0,例如 12 -> 10
- 从 3、4、5、6、7 到 5,比如 37 -> 35
- 然后从 8、9、0 到 0,再次像 59 -> 60
我试过 Math.ceil
或 Math.floor
但它们不起作用。
最佳答案
Math.ceil
和 Math.floor
用于 float (如 Double
)。没有你想做的内置函数,但这应该可以工作
public static int round(int original) {
if original % 10 <= 2 {
return original - (original % 10)
} else if original % 10 <= 7 {
return original - (original % 10) + 5
}
return original - (original % 10) + 10
}
如果你想让它处理负数,使用这个:
public static int round(int original) {
if original % 10 <= 2 {
return original - (original % 10)
} else if original % 10 <= 7 {
return original - (original % 10) + 5
} else if original % 10 <= 9 {
return original - (original % 10) + 10
} else if original % 10 >= -2 {
return original - (original % 10)
} else if original % 10 >= -7 {
return original - (original % 10) - 5
}
return original - (original % 10) - 10
}
显然,您不能只是复制和粘贴这段代码,因为您需要将它放在一个类中,并且可能会更改可见性和 static
ness(public static
) 部分。
要使用它,请调用 int rounded = round(input)
希望这对您有所帮助!
关于java - 将整数的最后一位四舍五入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52234546/