Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我需要一个舍入函数,当输入为正数时返回一个较大的整数,而当输入为负数时返回一个较小的数,即它不应该返回 0,除非输入实际上是 0.0。
例子:
f(0.1) = 1 f(-0.1) = -1 f(0.0) = 0
(Math.ceil()函数总是向上取整,所以Math.ceil(-0.1) = 0
Math.ceil()
Math.ceil(-0.1) = 0
怎么样
rounded = Math.ceil(Math.abs(toBeRounded)) * Math.signum(toBeRounded);
这会将您的数字的绝对值向上舍入,然后重新应用符号。
另一种方法是根据需要使用 ceil 和 floor 。
double roundToInfinity = x < 0 ? Math.floor(x) : Math.ceil(x);
注意:-0.0 也将四舍五入为 0