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標記將默認爲一位小數,而不必指定,所以當我添加##時,它會在結尾添加兩個數字(如果可用)。 (即## 0.E0 = 12.3,而## 0。## E0 = 12.345E3)這將比書中的措辭/格式更有意義。 – AdamWestPhD
是嗎?這是什麼意思我的解決方案是錯誤的@AdamWestPhD :) –
它看起來像它的作品:)感謝您的幫助 – AdamWestPhD