Java 数字格式

Posted

技术标签:

【中文标题】Java 数字格式【英文标题】:Java NumberFormat 【发布时间】:2013-03-27 00:17:49 【问题描述】:

我正在尝试在程序中使用 java 的 NumberFormat 类和 getPercentInstance 方法来计算税金.我希望程序显示的是带两位小数的百分比。现在,当我之前尝试将小数格式化为百分比时,Java 将 0.0625 显示为 6%。如何让 Java 显示这样的小数或将 0.0625 显示为“6.25%”?

代码片段:

NumberFormat fmt1 = NumberFormat.getCurrencyInstance();
NumberFormat fmt2 = NumberFormat.getPercentInstance();

System.out.print("Enter the quantity of items to be purchased: ");
quantity = scan.nextInt();

System.out.print("Enter the unit price: ");
unitPrice = scan.nextDouble();

subtotal = quantity * unitPrice;
final double TAX_RATE = .0625;
tax = subtotal * TAX_RATE;
totalCost = subtotal + tax;

System.out.println("Subtotal: " + fmt1.format(subtotal));
System.out.println("Tax: " + fmt1.format(tax) + " at " + fmt2.format(TAX_RATE));
System.out.println("Total: " + fmt1.format(totalCost));

【问题讨论】:

你有NumberFormat,但我没有看到你在任何地方使用它。 【参考方案1】:

您可以使用setMinimumFractionDigits(int) 设置NumberFormat 实例的最小小数位数。

例如:

NumberFormat f = NumberFormat.getPercentInstance();
f.setMinimumFractionDigits(3);
System.out.println(f.format(0.045317d));

生产:

4.532%

【讨论】:

以上是关于Java 数字格式的主要内容,如果未能解决你的问题,请参考以下文章

java--数字格式化

excel中日期格式是数字,想转成java的日期格式,遇到了问题

Java 数字格式验证

Java连载80-数字类格式随机数BigDecimal

Java 格式化数字--- DecimalFormat

Java 数字格式