<fmt:formatNumber>
SYNOPSIS
| value="数値" |
| type="number|currency|percent" |
| pattern="数値パターン" |
| currencyCode="通貨コード" |
| currencySymbol="通貨記号" |
| groupingUsed="true|false" |
| maxIntegerDigits="数値" |
| minIntegerDigits="1|数値" |
| maxFractionDigits="数値" |
| minFractionDigits="数値" |
| var="変数名" |
| scope="page|request|session|application" |
| value 属性を省略した場合の数値. |
説 明
java.text.NumberFormat を用いて数値をフォーマットします。
else や if else が不要であれば <c:if> を使用したほうがすっきり記述できます。
また単純な条件と出力であれば EL の 3 項条件演算子で代用することが出来ます。
属 性
フォーマットする数値を指定します。
この属性の代わりにタグ内部の文字列を数値として使用することも出来ます。
タグ内には条件文なども記述できるため、数値を算出する必要がある場合はタグ内に記述したほうが便利です。
以下の 2 つは両方とも 10,000 という出力となります。
<fmt:formatNumber groupingUsed="true" value="10000" /> <fmt:formatNumber groupingUsed="true"> <c:if test="true">10000</c:if> </fmt:formatNumber>
数値のフォーマットタイプを指定します。number (数値), currency (通貨),
percent (パーセント) のいずれかを指定できます。
日本 (ja_JP) におけるそれぞれのデフォルトフォーマットを使用した場合の出力は以下の通りです。
<fmt:formatNumber type="number" value="10000" /> → 10,000 <fmt:formatNumber type="currency" value="100.0" /> → ¥100 <fmt:formatNumber type="percent" value="1.0" /> → 100%
フォーマットパターンをカスタマイズします。
java.text.DecimalFormat に指定できるパターンを使用することが出来ます。
<fmt:formatNumber value="50" pattern="000.00" /> → 050.00 <fmt:formatNumber value="50" pattern="0.00E0" /> → 5.00E1
ISO 4217
で定義されている通貨コードを指定します。
type に currency を選択したりパターンに一般通貨記号 ¤
を使用した場合に適用されます。省略時は現在のロケールの通貨コードが使用されます。
通貨を表示する場合に使用する通貨記号を指定します。
type に currency を選択したりパターンに一般通貨記号 ¤
を使用した場合に適用されます。省略時は現在のロケールの通貨記号が使用されます。
整数部の最大桁数を指定します。 出力する数値の整数部の桁数がこの数値を超える場合は上位桁が削除されます。
<fmt:formatNumber value="10000" maxIntegerDigits="3" /> → 000
整数部の最小桁数を指定します。
出力する数値の整数部の桁数がこの数値に満たない場合は上位桁に 0 が追加されます。
<fmt:formatNumber value="5" minIntegerDigits="3" /> → 005
小数部の最大桁数を指定します。 出力する数値の小数部の桁数がこの数値を超える場合は下位桁が四捨五入されて削除されます。
<fmt:formatNumber value="3.1415" maxFractionDigits="2" /> → 3.14 <fmt:formatNumber value="2.7182" maxFractionDigits="2" /> → 2.72
小数部の最小桁数を指定します。
出力する数値の小数部の桁数がこの数値に満たない場合は下位桁に 0 が追加されます。
<fmt:formatNumber value="5.2" minFractionDigits="2" /> → 5.20
内 容
使用例
<fmt:setLocale value="en_US" /> <fmt:formatNumber type="number" value="10000" /> → 10,000 <fmt:formatNumber type="currency" value="100.0" /> → $100.00 <fmt:formatNumber type="percent" value="1.0" /> → 100% <fmt:setLocale value="fr_FR" /> <fmt:formatNumber type="number" value="10000" /> → 10 000 <fmt:formatNumber type="currency" value="100.0" /> → 100,00 € <fmt:formatNumber type="percent" value="1.0" /> → 100%