2011-02-19 52 views
2

是否可以使用f:convertNumber取整?我檢查了the api here,它沒有提到任何關於四捨五入的事情。如果沒有,那麼將double轉換爲$ value的下一個最好的事情是什麼?JSF f:convertNumber向上取整貨幣

<f:convertNumber maxFractionDigits="2" groupingUsed="true" currencySymbol="$" maxIntegerDigits="7" type="currency" /> 

例如:$ 1.104999應該成爲$ 1.11

回答

1

這適用於我的具體情況。但是它會有其他的邊緣案例會打破嗎?

首先,繞着它在我的java類:

private double roundCost(double cost) { 
    return (Math.ceil(cost*100))/100; 
} 

那麼以往爲我的F:convertNumber。

我接受其他建議。

1

在處理確切的數字(如貨幣金額)時,您實際上不應該使用Java中的原始double;而是使用java.lang.BigDecimal或某些自定義Money類型;有關說明原因,請參閱this SO question

BigDecimal支持多種舍入模式;你正在尋找的可能是java.math.RoundingMode.UP

至於如何將它與f:convertNumber結合起來的問題,我現在正在調查自己。

0

在使用默認舍入機制之前,可以添加0,005(在你的情況下)。