3

我需要一个舍入函数,当输入为正数时返回一个较大的整数,而当输入为负数时返回一个较小的数,即它不应该返回 0,除非输入实际上是 0.0。

例子:

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

Math.ceil()函数总是向上取整,所以Math.ceil(-0.1) = 0

4

2 回答 2

8

怎么样

rounded = Math.ceil(Math.abs(toBeRounded)) * Math.signum(toBeRounded);

这会将您的数字的绝对值向上舍入,然后重新应用符号。

于 2012-11-26T11:37:53.247 回答
0

另一种方法是根据需要使用 ceil 和 floor 。

double roundToInfinity = x < 0 ? Math.floor(x) : Math.ceil(x);

注意:-0.0 也将四舍五入为 0

于 2012-11-26T11:54:46.640 回答