2013-03-05 196 views
2

我有一个XSL样式表,我使用format-number(xpath,"#,##0")四舍五入值。在我的本地机器上,值1006.5四舍五入为1007.但是,服务器上的相同样式表将轮次从1006.5到1006.XSL四舍五入问题

任何想法为什么?

回答

2

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

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

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

0

我认为这可能是由于不同的XSLT 1.0处理器使用不同的舍入方法(半舍弃vs舍入/舍入舍入)。这也可能是由于浮点数在不同机器上的表现方式不同所致。

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