Javaで2つの浮動小数点数を掛ける正確な方法を探していましたが、BigDecimalを使うべきですが、期待通りに動作しません。私は間違って何をしていますか?Javaで2つの数値を正確に掛ける
マイコード:
BigDecimal a = new BigDecimal(3.53);
BigDecimal b = new BigDecimal(3.59);
BigDecimal c = a.multiply(b);
System.out.println(c);
結果:
は12.672699999999998796873512674210388041622697702955394242845497954075284496866515837609767913818359375
期待される結果:
12.6727
「a」と「b」を印刷してください。 –
私はそれが同じ結果であることを見て、期待値は上記の値の丸め値です。** Math.round ** –
のようなものを使うことができます。最初の浮動小数点定数は正確ではありません。深い理解が必要です。 –