簡體   English   中英

DecimalFormat沒有在Java中提供適當的輸出

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM