[1] [[XPath]] の数値は、 [[IEEE 754]]
の64ビット倍精度浮動小数点値です。
仕様書には、
<http://java.sun.com/docs/books/jls/html/4.doc.html#9208>
に概要があるからそれを参照せよと言っています。
([[IEEE]] の仕様書は自由に無料で手に入るものじゃないからかな。)

[2] 次の特殊な値を持ちます:
- 非数 ([[NaN]])
- 正の[[無限大]]
- 負の無限大
- 正の[[零]]
- 負の零

[3] 数値に対して、加減乗除が定義されています。
: [CODE(XPath)[[[+]]]] : 加算
: [CODE(XPath)[[[-]]]] : 減算
: [CODE(XPath)[[[*]]]] : 乗算
: [CODE(XPath)[[[div]]]] : 浮動小数点除算 (IEEE 754)
: [CODE(XPath)[[[mod]]]] : 切捨て除算剰余 ([[ECMAScript]] や [[Java]] の [CODE[[[%]]]] と同じ; IEEE 754 は丸め除算剰余なので注意)

[4] [CODE(XPathFunction)@en[[[number()]]]] による[[文字列]]から[[数値]]への変換で[RUBYB[[[空白]]]@en[whitespace]]が定義に使われていますがその意味は規定されていません。
[[XPath]] の他の部分と同じく [[XML]] の [CODE[[[S]]]] なのでしょうか。

[5] [CODE(XPathFunction)@en[[[string()]]]] による[[文字列]]の[[キャスト]]について、
[[XPath 1.0]] では [[IEEE 754]] の精度通りの値を整数または小数表現することを求めています。
[[Firefox]] は10進数で17桁くらい、 [[Chrome]] は4桁くらいの表現になります。
([[JavaScript]] の [[ToString]] と同じみたいです。) [TIME[2013-09-29T07:53:34.800Z]]

;; 17桁くらい = [[倍精度浮動小数点数]]の表現能力くらい

[6] [[Chrome]] は小さな数だと[[指数表記]]になります ([[XPath 1.0]] 違反)。
一方 [[Firefox]] は小さくても[[小数]]のままです。 [[ToString]] では[[指数]]になるので、
違う文字列化コードを通っているようです。 [TIME[2013-09-29T08:07:36.300Z]]