もしも
double d = 1.999e-4
出力を0.0001999にします。
どうすればいいですか?
NumberFormat formatter = new DecimalFormat("###.#####");
String f = formatter.format(d);
クラスのサブクラスを調べて、NumberFormat
詳細を知ることができます。
あなたはこのようにそれを行うことができます:
double d = 1.999e-4;
NumberFormat nf = NumberFormat.getInstance();
nf.setMinimumFractionDigits(7);
System.out.println(nf.format(d));
のメソッドのドキュメントを確認して、必要NumberFormat
に応じてフォーマットdouble
してください。
DecimalFormat
コンストラクターが述べているように、は特殊なケースですが、ケースにNumberFormat
その機能が必要だとは思いません。混乱している場合は、彼らのドキュメントをチェックしてください。便宜上、のファクトリメソッドgetInstance()
を使用してください。NumberFormat
BigDecimalクラスに。というメソッドがあると思いますtoPlainString()
。たとえば、BigDecimalが1.23e-8の場合、メソッドは0.0000000124を返します。
BigDecimal d = new BigDecimal("1.23E-8");
System.out.println(d.toPlainString());
上記のコードは0.0000000123を出力し、要件に従って文字列を処理できます。
あなたが望むのはそのように印刷することだけです。
System.out.printf("%1$.10f", d);
10f、10=必要な小数点以下の桁数を変更できます。
ご覧ください
java.text.DecimalFormat
と
java.text.DecimalFormatSymbols