我有一个XSL样式表,我正在使用format-number(xpath,"#,##0")
来舍入值。在我的本地计算机上,值1006.5被舍入为1007.但是,服务器上的相同样式表将舍入1006.5到1006。
知道为什么吗?
答案 0 :(得分:2)
在XSLT 1.0中,format-number()的舍入规则未明确规定。 (实际上它们是通过引用JDK 1.1规范来定义的,现在很难找到,但我记得很清楚它是非常不明确的。)
因此,不同的XSLT 1.0处理器可能表现不同。
XSLT 2.0定义了舍入规则(虽然我完全忘记它们是什么)。
答案 1 :(得分:0)
我认为这可能是由于不同的XSLT 1.0处理器使用了不同的舍入方法(半上升与舍入到均匀/银行家舍入)。这也可能是由于浮点数在不同机器上的表示方式不同。
我对this question的回答可能会提供更多详细信息并启动您的解决方案(解决方案有四舍五入到小数点后两位,但也许您可以看到它可以更普遍地应用)。