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 规范。
在 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 规范。