有一个任务需要使用XSLT从数据库输出一些数据。应用程序当前的区域设置为ru_RU,因此十进制分隔符是逗号。它看起来像这样:
<data>
<row>
<date value="28.04.2010"/>
<clicks value="281"/>
<depth value="1,7"/>
<row>
<row>
<date value="29.04.2010"/>
<clicks value="15"/>
<depth value="3"/>
<row>
<data>
需要将“深度”值格式化为小数:1.70和3.00。当我尝试使用以下方式转换值时:
<xsl:value-of select="format-number(number(depth/@value)), '##.##'"/>
当将属性值转换为数字时,XSLT处理器不会将逗号视为小数分隔符,因此我得到了 NaN 。
当我手动将源字符串从“小数逗号”格式转换为“小数点”格式时,它在某种程度上有所帮助。
<xsl:value-of select="format-number(number(translate(depth/@value, ',', '.'))), '##.##'"/>
但它看起来相当丑陋。
有没有更正确和集中的方法告诉处理器逗号符号是十进制分隔符?
> 0,26
- Sergei Morozov