
为什么数字格式化很重要
同一个数字可以根据区域、上下文和惯例以多种方式书写。正确格式化数字对于金融应用、数据仪表盘、国际化软件以及任何向人类用户显示数字的场景都至关重要。

区域特定的数字格式
世界各地数字的格式化方式不同:
| 区域 | 示例数字 | 格式化结果 |
|---|---|---|
| en-US(英语,美国) | 1234567.89 | 1,234,567.89 |
| de-DE(德语,德国) | 1234567.89 | 1.234.567,89 |
| fr-FR(法语,法国) | 1234567.89 | 1 234 567,89 |
| en-IN(英语,印度) | 1234567.89 | 12,34,567.89 |
| ja-JP(日语,日本) | 1234567.89 | 1,234,567.89 |
| ar-SA(阿拉伯语,沙特阿拉伯) | 1234567.89 | ١٬٢٣٤٬٥٦٧٫٨٩ |
主要区别:
- 小数点分隔符:英语国家用点号(.),欧洲用逗号(,)
- 千位分隔符:根据区域不同,使用逗号、点号、空格或撇号
- 分组方式:大多数使用3位一组,印度使用拉克系统(2,2,3分组)
- 数字字符:阿拉伯语、波斯语等语言有自己的数字符号
Intl.NumberFormat API
现代 JavaScript 提供 Intl.NumberFormat 用于区域感知的数字格式化:
// 货币格式化
new Intl.NumberFormat('en-US', {
style: 'currency',
currency: 'USD'
}).format(1234567.89);
// → "$1,234,567.89"
new Intl.NumberFormat('de-DE', {
style: 'currency',
currency: 'EUR'
}).format(1234567.89);
// → "1.234.567,89 €"
// 紧凑表示法
new Intl.NumberFormat('en-US', {
notation: 'compact',
compactDisplay: 'short'
}).format(1234567);
// → "1.2M"
// 百分比
new Intl.NumberFormat('en-US', {
style: 'percent',
minimumFractionDigits: 1
}).format(0.1234);
// → "12.3%"
数字显示格式
标准十进制
默认表示形式,包含小数点分隔符和可选的分组。
科学记数法
适用于非常大或非常小的数字:
1.23456 × 10⁹(排版格式)1.23456e9(编程表示法)

紧凑/缩写
使大数字一目了然:
- 1,200 → "1.2K"
- 1,500,000 → "1.5M"
- 1,000,000,000 → "1B"
紧凑表示法广泛用于仪表盘、社交媒体粉丝数和财务摘要。
百分比
将十进制小数转换为百分比格式:0.1234 → 12.34%
货币
添加货币符号、代码或两者:
- 符号:$1,234.56
- 代码:USD 1,234.56
- 名称:1,234.56 US dollars
序数
数字位置:1st, 2nd, 3rd, 4th...(因语言而异)
精度和舍入

有效数字
数值中有意义的数字位数:
1,234.5678四舍五入到4位有效数字 =1,2350.001234四舍五入到4位有效数字 =0.001234
小数位数
小数点后固定的数字位数:
1234.5保留2位小数 =1234.501234.5678保留2位小数 =1234.57(四舍五入)
舍入模式
- 四舍五入(一半向上):2.5 → 3(日常使用常见)
- 四舍六入五成双(银行家舍入):2.5 → 2, 3.5 → 4(减少系统偏差)
- 截断:2.9 → 2(丢弃小数部分)
金融数字格式化
金融领域需要特别注意:
- 对于有分币的货币,始终显示恰好2位小数
- 某些货币没有分币(JPY, KRW)——从不显示小数位
- 某些货币使用3位小数(KWD, BHD)
- 在会计中,负值用括号显示:
(1,234.56)而不是-1,234.56 - 在财务报表中显示精确值,而非紧凑表示法
使用数字格式化工具
我们的工具:
- 输入任意数字——整数、小数、大数或小数
- 选择区域——查看任何区域标准的格式化结果
- 选择格式类型——十进制、货币、百分比、紧凑、科学记数法
- 配置精度——小数位数或有效数字
- 选择货币——对于货币格式,从所有 ISO 4217 代码中选择
- 复制格式化结果——随时粘贴使用
可用于本地化工作、金融应用、仪表盘设计,以及了解数字在不同国家用户眼中的显示方式。