簡體   English   中英

沒有科學計數法的DecimalFormat

[英]DecimalFormat WITHOUT scientific notation

我有這樣的DecimalFormat:

DecimalFormat df = new DecimalFormat("#,###.###");

然后,我有3種方法,它們僅返回時間,電位和電流的浮點值,如果有最后兩位,則返回許多小數。 因此,我試圖獲取具有格式化的3個值的輸出消息,因此:

System.out.println("t="+df.format(getTime())+"(s), v="+df.format(getPotential())+"(V), i="+df.format(getI())+"(A)");

時間僅是從0到10的秒數,沒有任何小數點,並且看起來不錯,直到達到10。然后顯示1E + 1。 我只是不明白為什么,因為我已經閱讀了API,並且如果我在DecimalFormat中不使用'E'字符,那么它也不應該采用科學計數法。

同樣,電位使用3個小數從0變為某個值。 看起來不錯,但是從0到0.01,它以4個小數出現,是最后一個始終為0的小數。

對DecimalFormat的這種行為有任何解釋嗎? 我究竟做錯了什么?

也許在您的情況下使用printf會更簡單:

System.out.printf("t=%d(s) v=%.2f(V) i=%.2f(A)\n", getTime(), getPotential(), getI());

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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