:私が得たJavaで大きな10進値を丸める方法は?私が最初に設定され、小数点フォーマットに基づいて進数を丸めるために、次のコードにしようとしている
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