[1] XPath の数値は、 IEEE 754 の64ビット倍精度浮動小数点値です。 仕様書には、 <http://java.sun.com/docs/books/jls/html/4.doc.html#9208> に概要があるからそれを参照せよと言っています。 (IEEE の仕様書は自由に無料で手に入るものじゃないからかな。)
[2] 次の特殊な値を持ちます:
[3] 数値に対して、加減乗除が定義されています。
[4] number()
による文字列から数値への変換で空白が定義に使われていますがその意味は規定されていません。
XPath の他の部分と同じく XML の S
なのでしょうか。
[5] string()
による文字列のキャストについて、
XPath 1.0 では IEEE 754 の精度通りの値を整数または小数表現することを求めています。
Firefox は10進数で17桁くらい、 Chrome は4桁くらいの表現になります。
(JavaScript の ToString と同じみたいです。)
[6] Chrome は小さな数だと指数表記になります (XPath 1.0 違反)。 一方 Firefox は小さくても小数のままです。 ToString では指数になるので、 違う文字列化コードを通っているようです。