Intl.NumberFormat#格式化最大整数值

Intl.NumberFormat#format maximum integer value

ECMAScript Internationalization API 1.0 spec 中,NumberFormat 对象有一个 format 函数,它接受一个值并根据 NumberFormat 对象格式化数字。

NumberFormat#format函数可以消化的最大值是多少?

在Chrome和火狐运行以下:

new Intl.NumberFormat().format(1111111111111111);
// => "1,111,111,111,111,110"
//                         ^
//                     16th digit

似乎第15位之后的任何内容都转换为0。我快速查看了规范,但无法弄清楚原因。有谁知道为什么?

可能是因为上面的 ES5 规范遵循 IEEE 754 规范?想不出别的了……

ES5 spec follows IEEE 754 specification

并且 ECMAScript Intl API 规范引用了基本类型的 ES5 规范。