爪哇百分比显示小数
我今天写了一个程序,我需要在我的输出中显示百分比,但如果我有一个输入.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