2013-03-05 234 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的回答可能會提供更多詳細信息,並開始提供解決方案(解決方案有四捨五入到小數點後兩位,但也許您可以看到它如何更通用)。