XSL舍入问题

时间:2013-03-05 17:37:08

标签: xslt xsl-fo

我有一个XSL样式表,我正在使用format-number(xpath,"#,##0")来舍入值。在我的本地计算机上,值1006.5被舍入为1007.但是,服务器上的相同样式表将舍入1006.5到1006。

知道为什么吗?

2 个答案:

答案 0 :(得分:2)

在XSLT 1.0中,format-number()的舍入规则未明确规定。 (实际上它们是通过引用JDK 1.1规范来定义的,现在很难找到,但我记得很清楚它是非常不明确的。)

因此,不同的XSLT 1.0处理器可能表现不同。

XSLT 2.0定义了舍入规则(虽然我完全忘记它们是什么)。

答案 1 :(得分:0)

我认为这可能是由于不同的XSLT 1.0处理器使用了不同的舍入方法(半上升与舍入到均匀/银行家舍入)。这也可能是由于浮点数在不同机器上的表示方式不同。

我对this question的回答可能会提供更多详细信息并启动您的解决方案(解决方案有四舍五入到小数点后两位,但也许您可以看到它可以更普遍地应用)。