JAVA BigDecimalの使用中に発生した問題
1003 ワード
BigDecimalの使用中に遭遇した問題は、その後、ネット上で解決策を探して、完璧に解決して、記録しました.
出力結果は0です.
資料を調べてみると、このように書かなければならないことがわかりました.
また、newのBigDecimalオブジェクトの場合、doubleタイプの数字を入力すると不思議なことが起こるので、文字列やintタイプの数字を入力したほうがいいです.
出力結果:0.589999999999999999996891375531049556168613833129345703125
ただし、Stringタイプの数値が入力されている場合は、次のようになります.
出力結果:0.59
なぜこんなことになったのかについては、BigDecimalの穴を参照してください.
BigDecimal sumAmount = new BigDecimal(0);
sumAmount.add(new BigDecimal(5000));
System.out.println(sumAmount);
出力結果は0です.
資料を調べてみると、このように書かなければならないことがわかりました.
BigDecimal sumAmount = new BigDecimal(0);
sumAmount= sumAmount.add(new BigDecimal("5000"));
System.out.println(totalAmount);
また、newのBigDecimalオブジェクトの場合、doubleタイプの数字を入力すると不思議なことが起こるので、文字列やintタイプの数字を入力したほうがいいです.
BigDecimal sumAmount= new BigDecimal(0);
sumAmount= sumAmount.add(new BigDecimal(0.59));
System.out.println(sumAmount);
出力結果:0.589999999999999999996891375531049556168613833129345703125
ただし、Stringタイプの数値が入力されている場合は、次のようになります.
BigDecimal sumAmount = new BigDecimal(0);
sumAmount = sumAmount .add(new BigDecimal("0.59"));
System.out.println(sumAmount );
出力結果:0.59
なぜこんなことになったのかについては、BigDecimalの穴を参照してください.