我需要一个舍入函数,当输入为正时返回一个更大的整数,当负数时返回一个更小的数字,即除非输入实际为0.0,否则它不应返回0.
示例:
f(0.1) = 1
f(-0.1) = -1
f(0.0) = 0
(Math.ceil()
函数总是向上舍入,因此Math.ceil(-0.1) = 0
答案 0 :(得分:8)
怎么样
rounded = Math.ceil(Math.abs(toBeRounded)) * Math.signum(toBeRounded);
将数字的绝对值四舍五入,然后重新应用该符号。
答案 1 :(得分:0)
另一种方法是根据需要使用ceil和floor。
double roundToInfinity = x < 0 ? Math.floor(x) : Math.ceil(x);
注意:-0.0也将舍入为0