在XSL中是否有类似于format-number的东西,可以将数字格式化为'#0.00'的形式而不进行四舍五入?
因此,
- 5会变成5.00
- 14.6会变成14.60
- 1.375会变成1.37
仅使用format-number无法实现此功能,因为它会将1.375四舍五入为1.38
<xsl:value-of select="format-number(MY_NUMBER, '#0.00')" />
这个字符串拼接子串的方法在数字5上不起作用(因为没有“.”),并且也不会在14.6末尾添加零。
<xsl:value-of select="concat(substring-before(MY_NUMBER,'.'), '.', substring(substring-after(MY_NUMBER,'.'),1,2))" />
我需要做一些繁琐的事情吗:
<xsl:choose>
<xsl:when test=""></xsl:when>
<xsl:otherwise></xsl:otherwise>
</xsl:choose>
非常感谢你提前的帮助!
12.1234
、-12.1234
和12
。如果在 David 提供的 xslt 中使用,结果将是12.12
、-12.13
和12.00
。因此,包含负数的双精度实际上会四舍五入。为了防止这种情况发生,需要乘以一千(floor($n*1000) div 1000, ....)。@DavidCarlisle,供您参考。 - Serhat