Javaで整数を1000に最も近い値に切り捨てたいと思います。
したがって、たとえば:
単に1000で割ると、興味のない数字が失われ、1000を掛けます。
i = i/1000 * 1000
または、次のことも試すことができます。
i = i - (i % 1000)
あなたは数を1000で割ることができます、適用 Math.floor
、1000を掛けて、整数にキャストバックします。
int i = Math.floorDiv(-13623, 1000) * 1000
//i => -14000
上記のコードは、除数(この例では1000)が正であると仮定して、常に(負の無限大に向かって)切り捨てられます。
もう1つの答え(i = i/1000 * 1000
)は、i
が正の場合は切り捨てられますが、i
が負の場合は切り捨てられます。
-13623 / 1000 * 1000 == -13000
long
の精度が原因でMath.floorDiv
メソッドが失敗する可能性がある非常に大きな数で機能する、double
s用のMath.floor
のバージョンもあります。
floorDiv
sと一緒に使用するMath.floorMod
メソッドもあります。これにより、少し短くすることができます。
int i = -13623;
i -= Math.floorMod(i, 1000);
//i => -14000