是否有一个库函数可以向无穷大舍入数字(即远离0)

时间:2012-11-26 11:34:52

标签: java math

我需要一个舍入函数,当输入为正时返回一个更大的整数,当负数时返回一个更小的数字,即除非输入实际为0.0,否则它不应返回0.

示例:

f(0.1) = 1
f(-0.1) = -1
f(0.0) = 0

Math.ceil()函数总是向上舍入,因此Math.ceil(-0.1) = 0

2 个答案:

答案 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