我正在尝试从我的 xml 中获取数字的值到 2 dec 位。
XML:<Quantity>0.0050</Quantity>
XSL:<xsl:value-of select="format-number($quantity, '####0.00')" />
但是 XSL 似乎对此值有问题并输出 0.00
在页面的一个区域和 0.01
在另一个。当然在这种情况下最好有0.01
。各个领域的输出。
另一个区域的值为 4.221
然而 XSL 正在输出 4.23
.
我确实意识到 format-number
作为一种将数字转换为字符串的方法。
不知道如何解决这个问题。
编辑:
好吧,经过一番折腾,我发现这是可行的:
<xsl:value-of select='format-number( round(100*$quantity) div 100 ,"##0.00" )' />
通过 website
正如这个人提到的,XSL 使用“银行家四舍五入”来四舍五入到偶数而不是更大的数字。
这个解决方案看起来并不优雅,它意味着向已经庞大而复杂的 XSL 文件添加大量额外的函数。我肯定错过了什么吗?
最佳答案
不知道为什么格式会如此不一致,但从内存来看,它的规范是......复杂的。
同时,您可以使用 round
函数(ref)。这并不完美,但很实用。如果您需要特定数量的 sig figs,您可以使用 THE POWER OF MATHS! 并执行以下操作:
<xsl:value-of select="round(yournum*100) div 100"/>
https://stackoverflow.com/questions/3805248/