2012-02-08 129 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(); 

,这将在处理百分比很好地帮助。没有必要的附加字符串连接或格式。