format-number 函数

将数字转换为字符串。 转换的结果是格式化第一个参数 (number) 中指定的数字,使用第二个参数 (string) 中指定的格式,应用第三个可选参数 (string) 中命名的十进制格式中定义的规则。 如果省略了第三个参数,即十进制格式名称,则使用默认的十进制格式。 此函数和 <xsl:decimal-format> 元素设计为一起使用。

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

备注

第一个参数指定“输入值”。 例如数字 5351。

第二个参数指定“格式模式”。 例如字符串“###.###,00”。

第三个参数是可选的“十进制格式名称”。 这使任何字符都能在格式模式字符串中使用;在 <xsl:decimal-format> 元素中会为字符分配角色。 常用的十进制格式名称 european 用于颠倒逗号和句点的默认角色。

在格式模式中支持的字符如下:“.”、“,”、“#”、“%”、“0”和 Unicode 千分比字符 (#x2030)。 “#”字符用于说明整数。 “.”和“,”字符用于说明标点符号的位置和类型。 “0”字符用于将 0 放在“.”字符的前面和后面,如果该位置将通过其他方式显示无数字,例如 00.3 或 3.00。 在截断小数点右侧的位数时,数字将舍入。 小数点左侧的位数从不会被截断。

输入值和格式模式字符串必须同时存在,否则将出现错误。 如果输入值无法使用 number() 函数中的规则强迫为数字,format-number 函数将返回 NaN。 如果格式模式字符串不是有效的模式字符串,函数将返回输入值,不作任何更改。

十进制格式名称如果存在,将按照在 <xsl:decimal-format> 元素中指定的方式来表示十进制格式的名称。 十进制格式名称必须是限定名。 如果在函数中指定十进制格式名称,则在格式表中必须有同名的 <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> 元素