1
私はJavaを学んでいて、さまざまなJavaユーティリティと数値書式についてのセクションを教えています。しかし、私の書式設定は、本の中で述べるのと同じように動作していません。私のコードは次のようになります。本例ではDecimalFormatがJavaで適切な出力を出していない
import java.text.NumberFormat;
import java.text.DecimalFormat;
public class Lessons {
public static void main(String[] args) {
double d = 7.1348759272948202842847;
System.out.printf("%15e %n", d);
NumberFormat cashFormat = NumberFormat.getCurrencyInstance();
System.out.println(cashFormat.format(d));
double e = 14.9;
double f = 16.09805938020001;
double g = 12346;
DecimalFormat Dec_Format = new DecimalFormat("##0.##E0");
System.out.println(Dec_Format.format(e));
System.out.println(Dec_Format.format(f));
System.out.println(Dec_Format.format(g));
}
、それは12345でフォーマットすることを言い、「## 0 ## E0。」「12.3E3」です。受信した出力は "12.345E3"です。
私が受け取っている出力は意味がありますが、本と一致しないため、本に誤りがあるか、何か間違っているかどうかはわかりません。
これは通常の出力ですか?
そうですか。私は現金書式の部分を正しく理解していましたが、その本が示した方法のために、科学的表記法はあまり意味がありませんでした。あなたの例を正しく理解していれば、Javaのe表記法は、指定する必要がなく小数点以下1桁にデフォルト設定されます。##を追加すると、末尾に2つの数字が追加されます。 (すなわち、## 0.E0 = 12.3であるのに対し、## 0。## E0 = 12.345E3)これは、本のフレーズ/書式に対するより多くの意味を成している。 – AdamWestPhD
そう?私の解決策が間違っているのはどういう意味ですか?@AdamWestPhD :) –
それはうまくいくようです:)助けてくれてありがとう – AdamWestPhD