format-number 関数

数字を文字列に変換します。変換は、最初の引数 (number) に指定されている数字を 2 番目の引数 (string) に指定されている書式を使用し、3 番目のオプションの引数 (string) で指定されている 10 進書式名で定義される規則を適用した書式設定の結果です。3 番目の引数 (10 進書式名) が省略されている場合は、既定の 10 進書式が使用されます。この関数と <xsl:decimal-format> 要素は、一緒に使用するように設計されています。

string format-number(number, string, string?)

解説

最初の引数は入力値を指定します。たとえば、数字 5351 です。

2 番目の引数はフォーマット パターンを指定します。たとえば、文字列 '###.###,00' です。

3 番目の引数は、10 進書式名で、省略できます。これにより、フォーマット パターン文字列に任意の文字を使用できます。文字には <xsl:decimal-format> 要素内で役割が割り当てられます。一般的な 10 進書式名は european で、既定の書式からコンマとピリオドの役割を逆にするために使用されます。

フォーマット パターンでは、"."、","、"#"、"%"、"0"、および Unicode per-mille 文字 (#x2030) がサポートされます。"#" 文字は整数の記述に使用されます。"." および "," 文字は位置および型の区切りの記述に使用されます。"0" 文字は、00.3 または 3.00 のように数字が本来表示されない位置で、"." 文字の前後に 0 を置くために使用されます。数字を小数点の右側で切り捨てる場合、数値は丸められます。小数点の左側の数字が切り捨てられることはありません。

入力値とフォーマット パターン文字列は両方とも必要です。そうでない場合は、エラーがスローされます。number() 関数の規則を使用して、入力値を数値に変換できない場合、format-number 関数は NaN を返します。フォーマット パターン文字列が有効なパターン文字列でない場合、関数は入力値をそのまま返します。

10 進書式名が存在する場合、それは <xsl:decimal-format> 要素で指定されている 10 進書式の名前を表します。10 進書式名は、修飾名であることが必要です。関数で 10 進書式名を指定する場合、同じ名前のスタイルシートに <xsl:decimal-format> 要素が必要です。

<xsl:decimal-format> 要素は、既定の数字のフォーマット パターンを上書きできます。<xsl:decimal-format> 要素は、java.text.DecimalFormat クラスの書式指定子のパターンに従います。<xsl:decimal-format>format-number 関数を使用する例については、「<xsl:decimal-format> 要素」を参照してください。

次の XSLT 行では、"24.535,20"が返されます。

<xsl:decimal-format name="european" decimal-separator=',' grouping-separator='.' />
<xsl:value-of select="format-number(24535.2, '###.###,00', 'european')"/>

次の関数の呼び出しでは、"5,351" が返されます。

format-number(5351,"#,###")

次の関数の呼び出しでは、"5351.00" が返されます。

format-number(5351, "#.00")

次の関数の呼び出しでは、"53.5100" が返されます。

format-number(53.51, "#.0000")

次の関数の呼び出しでは、"0053.5100" が返されます。

format-number(53.51, "0000.0000")

次の関数の呼び出しでは、"0053.51" が返されます。

format-number(53.51, "0000.####")

次の関数の呼び出しでは、"53.6" が返されます。

format-number(53.56, "0.0")

XSLT スタイル シートを使用して、この関数を XML データに適用する完全な例については、「<xsl:decimal-format> の例」を参照してください。

参照

リファレンス

XML データ型リファレンス
<xsl:decimal-format> 要素