ホームページ >Java >&#&チュートリアル >Java の二重乗算結果の微小偏差問題に関する簡単な説明
次のコードの実行結果を見てください:
public class TestDouble { public static void main(String[] args) { double d =538.8; System.out.println(d*100); }
出力結果は驚くべきことに 53880 ではなく、53879.99999999999 です
解決策 1:
538.8*100 を *10*10 に置き換えると、何を取得できますか
の結果は、538.8*10000を100*100に置き換えることです。
解決策 2:
public class TestDouble { public static void main(String[] args) { double d =538.8; BigDecimal a1 = new BigDecimal(Double.toString(d)); BigDecimal b1 = new BigDecimal(Double.toString(100)); BigDecimal result = a1.multiply(b1);// 相乘结果 System.out.println(result); BigDecimal one = new BigDecimal("1"); double a = result.divide(one,2,BigDecimal.ROUND_HALF_UP).doubleValue();//保留1位数 System.out.println(a); } }
上記の記事は、Java の二重乗算の結果の偏差に関する小さな問題について簡単に説明しています。これはすべて、編集者によって共有された内容であり、参考になれば幸いです。皆さんもPHP中国語ネットを応援していただければ幸いです。
Java の二重乗算結果の小さな偏差に関するその他の記事については、PHP 中国語 Web サイトに注目してください。