2010-11-09 60 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的方式直接更改。