0

値が34.31のBigDecimalがあり、次のコードで表示する場合:

<h:outputText value="#{invoice.invoiceHeader.totalInvoiceAmt}">
    <f:convertNumber pattern="#0.00" type="currency" currencyCode="USD" currencySymbol="$"/>
</h:outputText>

$ 34.31と表示されると思っていましたが、代わりに34.31と表示されます。

私は何が間違っているのですか?

4

1 に答える 1

0

ありがとう@partlov。

<f:convertNumber/> に pattern 属性がある場合、type 属性と currency 属性は無視されます。したがって、次のようになります。

<h:outputText value="#{invoice.invoiceHeader.totalInvoiceAmt}">
    <f:convertNumber pattern="#0.00" type="currency" currencyCode="USD" currencySymbol="$"/>
</h:outputText>

pattern="#0.00" のみが使用されるため、34.4 は 34.40 になります。ただし、次の場合:

<h:outputText value="#{invoice.invoiceHeader.totalInvoiceAmt}">
    <f:convertNumber type="currency" currencyCode="USD" currencySymbol="$"/>
</h:outputText>

すべての属性が使用され、34.4 が $34.40 になります。

于 2013-02-15T15:08:02.503 に答える