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 プロセッサが異なる丸め方法 (ハーフアップ vs 偶数への丸め/バンカーの丸め) を使用していることが原因である可能性があると思います。また、異なるマシンでの浮動小数点数の表現方法の違いが原因である可能性もあります。

この質問に対する私の答えは、より詳細な情報を提供し、解決策を開始する可能性があります (解決策は小数点以下 2 桁までの四捨五入ですが、より一般的にどのように適用できるかがわかります)。

于 2013-03-11T16:11:58.563 に答える