Intl.NumberFormat#format 最大整数值

Posted

技术标签:

【中文标题】Intl.NumberFormat#format 最大整数值【英文标题】:Intl.NumberFormat#format maximum integer value 【发布时间】:2015-01-30 05:54:10 【问题描述】:

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

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

在 Chrome 和 Firefox 下运行:

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

似乎第 15 位之后的任何内容都转换为 0。我快速浏览了规范,但不知道为什么。有谁知道为什么?

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

【问题讨论】:

【参考方案1】:

ES5 规范遵循 IEEE 754 规范

ECMAScript Intl API 规范参考了 ES5 规范的基本类型。

【讨论】:

以上是关于Intl.NumberFormat#format 最大整数值的主要内容,如果未能解决你的问题,请参考以下文章

Intl.NumberFormat 中的多个语言环境?

如何将 Intl.NumberFormat 与本机反应一起使用?

Intl.NumberFormat 没有做数百万正确

使用不带货币符号的 Intl.NumberFormat 进行货币格式化

为啥 Intl.NumberFormat 不适用于 Safari 和 Firefox 中的单位?

Intl.NumberFormat 返回数字和货币符号通过间距划分的结果