使用DecimalFormat格式化美元值

时间:2010-11-09 01:31:56

标签: java

我需要显示符合以下要求的美元值。

  1. 如果该值小于1美元,请设置前导零。例如0.55
  2. 如果该值没有分数,则放置两个尾随零。例如100.00
  3. 这是棘手的部分。该值可能小于1美分,在这种情况下应按原样打印。例如0.005
  4. 是否可以使用DecimalFormat实现此功能?如果它不是最后一个要求,那么“0.00”的模式会有,但我不知道如何做最后一个。

2 个答案:

答案 0 :(得分:1)

您可以尝试if语句并重新声明DecimalFormat:

if(num < 0.01 && num != 0)
    DecimalFormat dec = new DecimalFormat("$#,##0.000");

这是相当蛮力的,不知道DecimalFormat中是否有任何模式可以直接更改它。

答案 1 :(得分:0)

我想通了,好吧。为此,您需要知道最大小数位数。根据我的需要,该值最多可包含3位小数,因此“0.00#”的模式可以解决这个问题。