2010-11-09 44 views
2

我需要显示具有以下要求的美元值。使用DecimalFormat格式化美元值

  1. 如果该值小于1美元,则放置前导零。例如0.55
  2. 如果该值没有分,则放置两个尾随零。例如100.00
  3. 这是棘手的部分。该值可能小于1美分,在这种情况下,它应该按原样打印。例如0.005

是否可以通过DecimalFormat来实现?如果不是最后一项要求,则可以使用“0.00”的模式,但我不知道如何做最后一项。

回答

0

我想通了,很好。为此,您需要知道小数位的最大数量。根据我的需要,该值最多可以有3位十进制数字,所以“0.00#”模式可以做到这一点。

1

你可以if语句试图重新声明你的DecimalFormat:

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

,虽然是很强力,不知道是否有在任何DecimalFormat的方式直接更改。

相关问题