我今天寫了一個程序,我需要在我的輸出中顯示百分比,但如果我有一個輸入.05375我需要它顯示爲5.375%我認爲我可以通過使用NumberFormat但我的最終展示只有5%。有沒有辦法讓它顯示小數?或者我會如何編碼?程序正常運行只是需要格式不同的一個輸出。 以下是我現在爲該行代碼輸出的內容。爪哇百分比顯示小數
System.out.println("Interest Rate: " + percent.format(InterestRate));
我今天寫了一個程序,我需要在我的輸出中顯示百分比,但如果我有一個輸入.05375我需要它顯示爲5.375%我認爲我可以通過使用NumberFormat但我的最終展示只有5%。有沒有辦法讓它顯示小數?或者我會如何編碼?程序正常運行只是需要格式不同的一個輸出。 以下是我現在爲該行代碼輸出的內容。爪哇百分比顯示小數
System.out.println("Interest Rate: " + percent.format(InterestRate));
你可以做到這一點在Java中使用的NumberFormat。下面是示例代碼:
NumberFormat numberFormat = NumberFormat.getNumberInstance();
numberFormat.setMinimumFractionDigits(3);
System.out.println("Interest Rate: " + numberFormat.format(InterestRate));
一個更好的辦法是使用NumberFormat的與區域設置,如下圖所示:
NumberFormat numberFormat = NumberFormat.getNumberInstance(someLocale);
我不得不將它改成setMaximumFractionDigits(3);由於另一個計算,但它的工作。謝謝! – 2012-02-08 08:59:21
你仍然需要在某處乘以100。 – 2012-02-08 09:01:21
@Peter Lawrey你確定彼得?它對我有用,當我編碼它獲得百分比實例,它告訴它顯示一個百分比(我認爲它告訴java乘以100),然後我設置允許我的小數點的最大分數位。我已經運行了幾次成功的測試,但是我對此並不熟悉,所以我不是100%使用Java。 – 2012-02-08 09:50:57
用途:String.format();
參考文檔的格式規範。
如果使用%
格式,數由100
爲您事半功倍:
new DecimalFormat("%#0.000").format(rate);
三位小數不會是0.000嗎? – 2012-02-08 08:40:55
@PeterLawrey是的,刪除它:( – Bohemian 2012-02-08 08:42:05
我從'我需要它顯示爲5.375%',但我知道你是什麼意思。) – 2012-02-08 08:42:55
如何
System.out.printf("Interest Rate: %.3f%%%n", 100 * InterestRate);
+1 nice api kung fu – Bohemian 2012-02-08 08:44:29
double myVal = 0.05375
System.out.println("Interest Rate: " + (myVal*100) + "%");
這應該給你5.375%
那是相似的你在找什麼?
'%'從哪裏來? – Blaisorblade 2012-02-08 21:31:21
選擇的答案是正確的,但一定要使用
NumberFormat.getPercentInstance();
,這將在處理百分比很好地幫助。沒有必要的附加字符串連接或格式。
格式化的要求之一是我需要顯示3位小數。 – 2012-02-08 08:36:52
可能的重複[如何使用java.text.MessageFormat格式化小數百分比](http://stackoverflow.com/questions/698261/how-do-you-format-a-fractional-percentage-with-java- text-messageformat) – Veger 2012-02-08 08:37:46
@Veger我在搜索時沒有看到那篇文章。謝謝! – 2012-02-08 08:58:12