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> 的示例。