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);
これにより、数値の絶対値が切り上げられ、符号が再適用されます。
別のアプローチは、必要に応じて天井と床を使用することです。
double roundToInfinity = x < 0 ? Math.floor(x) : Math.ceil(x);
注:-0.0も0に丸められます