精度の問題を解決するには、次のBigDecimalを

BigDecimalクラス

  BigDecimalのパッケージ java.mathのクラス、不変、任意精度の符号付き小数。BigDecimalの任意精度の整数スケールなしの値と32ビット整数のスケール(スケール)の組成物。

  任意の正確な数字は、フロート又は正確な計算の二重、所望であれば、結果として使用することができずに、計算精度のためには、BigDecimalクラスを使用しなければならない、とBigDecimalクラスを使用することも多数を操作することができます

dobule例

1  パブリック クラスTestMath {
 2  
3      公共 静的 ボイドメイン(文字列[]引数){
 4          ダブル A1 = 0.1 5          ダブル A2 = 0.2 6          
7          ダブル A3 = A1 + A2。
8          のSystem.out.println(A1 + "+" + A2 + "=" + A3)。
9      }
 10  
11 }

結果はどのくらいあると思いますか?

結果:0.1 + 0.2 = 0.30000000000000004

(常識は0.1 + 0.2 = 0.3であるべきです)

BigDecimalの例

1つの インポートのjava.math.BigDecimal。
2  
3  パブリック クラスTestMath {
 4  
5      パブリック 静的 ボイドメイン(文字列[]引数){
 6          ダブル A1 = 0.1 7          二重 A2 = 0.2 8          
9          ダブル A3 = A1 + A2。
10          のSystem.out.println( "使用ダブル类型计算结果:" + A1 + "+" + A2 + "=" + A3)。
11          
12          のBigDecimal B1 = 新規のBigDecimal( "0.1" )。
13          のBigDecimal B2 = 新しいですBigDecimalを( "0.2" );
 14          
15          のBigDecimal B3 = b1.add(B2);
 16          
17          のSystem.out.println( "BigDecimal型は計算結果を使用して" + B1 + "+" + B2 + "=" + B3) ;
 18      }
 19  
20 }

出力:

0.1 + 0.2 = 0.30000000000000004:double型用いた結果
、使用のBigDecimal型計算:0.1 + 0.2 = 0.3

おすすめ

転載: www.cnblogs.com/zhuitian/p/11486871.html