2

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

知道为什么吗?

4

2 回答 2

2

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

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

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

于 2013-03-05T21:40:56.323 回答
0

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

我对这个问题的回答可能会提供更多详细信息,并让您开始寻找解决方案(解决方案是四舍五入到小数点后两位,但也许您可以看到如何更普遍地应用它)。

于 2013-03-11T16:11:58.563 回答