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

別のアプローチは、必要に応じて天井と床を使用することです。

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

注:-0.0も0に丸められます

于 2012-11-26T11:54:46.640 に答える