重複の可能性:
Java プログラムでの奇妙な浮動小数点の動作
JSP/JSTL を 1000 で除算すると余りが生じることがあるのはなぜですか?
小数点以下の数字を取得しようとしています。例: 60.
4 ->0.4
それでも、いつ
double a = 60.4 % 1;
であることがわかります0.3999999999999986
。
どうしてこれなの?そして、どうすれば修正できますか?
重複の可能性:
Java プログラムでの奇妙な浮動小数点の動作
JSP/JSTL を 1000 で除算すると余りが生じることがあるのはなぜですか?
小数点以下の数字を取得しようとしています。例: 60.
4 ->0.4
それでも、いつ
double a = 60.4 % 1;
であることがわかります0.3999999999999986
。
どうしてこれなの?そして、どうすれば修正できますか?
固定小数点型を使用する
BigDecimal src = new BigDecimal("60.4");
BigDecimal a = src.remainder(BigDecimal.ONE);
DecimalFormatを使用して、目的のタスクを実行できます。
OKここにあなたができる方法があります:小数点以下の数字を取得する方法は?(ジャワ)
これはまさにあなたが探しているものだと思います。したがって、基本的に次のものを使用できます。
double x = d - Math.floor(d);
また
10 進数の後の正確な数字のBigDecimalクラス。