JAVA BigDecimalの使用中に発生した問題

1003 ワード

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の穴を参照してください.