用点替换最后一个逗号

时间:2019-02-07 14:50:43

标签: xml xslt

输出字符串(例如)为“ 12,236,15”。 我无法更改为系统格式或输入字符串。

预期结果: 12356.15

我使用:

<xsl:value-of select="format-number(translate('12,236,15', ',','.'), '#.00')"/>

它与仅包含一个“逗号”符号的字符串一起使用时效果很好。 我可以仅将一个符号从末尾更改为“点”吗?

结尾可能是'12,236,156'(有3个数字),因此固定子字符串不匹配。

1 个答案:

答案 0 :(得分:1)

  

我想澄清是否可能,或者这是错误,另一个部门应该首先修复它。

两者。对于小数点和千位分隔符都使用逗号绝对不是表示数字的好方法。

仍然,这似乎在XSLT 2.0中有效:

<xsl:variable name="number" select="replace(input, ',(\d*)$', '.$1')" />
<xsl:variable name="number" select="translate($number, ',', '')" />
<xsl:value-of select="format-number($number, '#.00')"/>

演示https://xsltfiddle.liberty-development.net/pPzifp4