2012-02-08 128 views
5

我今天寫了一個程序,我需要在我的輸出中顯示百分比,但如果我有一個輸入.05375我需要它顯示爲5.375%我認爲我可以通過使用NumberFormat但我的最終展示只有5%。有沒有辦法讓它顯示小數?或者我會如何編碼?程序正常運行只是需要格式不同的一個輸出。 以下是我現在爲該行代碼輸出的內容。爪哇百分比顯示小數

System.out.println("Interest Rate: " + percent.format(InterestRate)); 
+0

格式化的要求之一是我需要顯示3位小數。 – 2012-02-08 08:36:52

+1

可能的重複[如何使用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

+0

@Veger我在搜索時沒有看到那篇文章。謝謝! – 2012-02-08 08:58:12

回答

10

你可以做到這一點在Java中使用的NumberFormat。下面是示例代碼:

NumberFormat numberFormat = NumberFormat.getNumberInstance(); 
numberFormat.setMinimumFractionDigits(3); 

System.out.println("Interest Rate: " + numberFormat.format(InterestRate)); 

一個更好的辦法是使用NumberFormat的與區域設置,如下圖所示:

NumberFormat numberFormat = NumberFormat.getNumberInstance(someLocale); 
+1

我不得不將它改成setMaximumFractionDigits(3);由於另一個計算,但它的工作。謝謝! – 2012-02-08 08:59:21

+0

你仍然需要在某處乘以100。 – 2012-02-08 09:01:21

+1

@Peter Lawrey你確定彼得?它對我有用,當我編碼它獲得百分比實例,它告訴它顯示一個百分比(我認爲它告訴java乘以100),然後我設置允許我的小數點的最大分數位。我已經運行了幾次成功的測試,但是我對此並不熟悉,所以我不是100%使用Java。 – 2012-02-08 09:50:57

0

用途:String.format(); 參考文檔的格式規範。

6

如果使用%格式,數由100爲您事半功倍:

new DecimalFormat("%#0.000").format(rate); 
+0

三位小數不會是0.000嗎? – 2012-02-08 08:40:55

+0

@PeterLawrey是的,刪除它:( – Bohemian 2012-02-08 08:42:05

+0

我從'我需要它顯示爲5.375%',但我知道你是什麼意思。) – 2012-02-08 08:42:55

7

如何

System.out.printf("Interest Rate: %.3f%%%n", 100 * InterestRate); 
+1

+1 nice api kung fu – Bohemian 2012-02-08 08:44:29

0
double myVal = 0.05375 
System.out.println("Interest Rate: " + (myVal*100) + "%"); 

這應該給你5.375%

那是相似的你在找什麼?

+0

'%'從哪裏來? – Blaisorblade 2012-02-08 21:31:21

1

選擇的答案是正確的,但一定要使用

NumberFormat.getPercentInstance(); 

,這將在處理百分比很好地幫助。沒有必要的附加字符串連接或格式。