我想在下面的代碼基礎上,我年初設定的十進制格式四捨五入十進制數:如何在Java中舍入大十進制值?
DecimalFormat df = new DecimalFormat("#.000");
df.setRoundingMode(RoundingMode.FLOOR);
double a = Double.parseDouble(df.format(43.473684210526315));
double b = Math.pow(a, 10);
double c = Double.parseDouble(df.format(b));
System.out.println(a + " ** " + b + " ** " + c);
,我得到的結果是:
43.473 ** 2.4109939006965688E16 ** 2.4109939006965688E16
正如你請參閱a
的值格式正確。而其他值不是。花了很長時間試圖瞭解正在發生的事情後,我發現2.4109939006965688E16
的值無法格式化。在刪除E16
後,我測試了相同的值,它工作。
我的問題是我怎麼能圓這麼大的小數,使其作爲a
?
是你知道E16是什麼意思? – Florian