[英]DecimalFormat not giving proper output in Java
我正在學習Java並且已經學習了關於不同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));
}
在書的例子中,它表示用“## 0。## E0”格式化的12345是“12.3E3”。 我收到的輸出是“12.345E3”。
我收到的輸出是有道理的,但由於它與書不匹配,我不確定這本書是錯誤還是我做錯了。
這是正常輸出嗎?
您用於打印12.3E3
的格式不正確,所以改為:
DecimalFormat Dec_Format = new DecimalFormat("##0.##E0");
你應該使用:
DecimalFormat Dec_Format = new DecimalFormat("##0.E0");
這將告訴你:
7,134876e+00
7,13 €
14,9E0
16,1E0
12,3E3//<-----------------
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.