跳到主要内容

数字格式化全指南:千分位、货币符号、百分比与中文万亿单位

讲清楚千分位逗号怎么按每三位分组、小数位与货币符号怎么本地化、英文 K/M/B 和中文万/亿的区别,以及财务报表和网页展示里常见的数字格式化坑和反向解析做法。

发布于 作者 李雷
#数字格式化 #千分位 #本地化 #货币格式

数字格式化全指南:千分位、货币符号、百分比与中文万亿单位

一个 7 位数字 1234567,在不同人眼里有完全不同的样子。程序员看到的是原始机器数,会计看到的是 1,234,567.00 元,中文读者更想看到 123.46万,德国客户则会把它写成 1.234.567。同一个值,几套写法,这就是数字格式化要解决的事。

千分位逗号:每三位一个分组

最常见的需求是千分位。规则很简单:从小数点往左,每三位插一个分隔符。1234567 经过千分位处理就是 1,234,567,9876598,765。三位一组对应的是英文的 thousand / million / billion 体系,逗号的位置正好卡在量级边界上,读起来一眼就能数出是百万还是十万。

但分隔符本身不是全球统一的。美式用逗号分组、用点做小数,写成 1,234,567.89;德式反过来,用点分组、用逗号做小数,写成 1.234.567,89;法式用一个窄空格分组,写成 1 234 567,89;印度英语更特别,按 lakh 分级,写成 12,34,567。同一个数字,四种地区四种写法。如果你把美式逗号版本直接发给德国客户,他会把 1,234 读成 1.234,差了一千倍。

财务报表与网页展示

在财务场景里,千分位几乎是硬性的。资产负债表上一串没有分隔符的 1234567890 没人愿意去数零,加上千分位变成 1,234,567,890 才能让审计、出纳、老板都对得上账。货币行还要带符号和固定小数位:美元两位小数 $1,234.50,日元不带小数 ¥1,000,欧元按各地写法输出 1.234,56 €

百分比是另一类常见格式。后端存的往往是 0.25 这样的比率,展示时要乘 100 并加百分号,变成 25%。报表里的增长率、转化率、占比,全是这套转换。网页展示则更看重紧凑:仪表盘上不可能塞下 1,200,000,标签会写成 1.2M,既省空间又一眼读懂量级。

英文 K/M/B 和中文万/亿

这是中文产品最容易翻车的地方。英文紧凑按一千的幂分级:K 是 10^3,M 是 10^6,B 是 10^9。中文(以及日文、韩文)按一万的幂分级:万是 10^4,亿是 10^8。两套体系的换底点完全不一样。

所以 12000 在英文里是 12K,在中文里是 1.2万;150000000 英文是 150M,中文是 1.5亿。这两套不能直接互换,1M 翻成中文是 100万,不是 1万。我自己踩过一次坑:给一个中文版仪表盘直接复用了英文的 K/M 紧凑逻辑,结果页面上出现 1.5M 这种东西,中文用户要在脑子里先把 M 换成万再换算一遍,等于没简化。后来才老老实实按当前语言切分级体系,中文读者看到的就是 1.5亿,不用再换底。

反向解析:把格式剥回纯数字

格式化是把机器数变好看,反向解析是把好看的串还原成机器数。一张工单里粘来一个 1.234.567,89,你复现 bug 需要的是 1234567.89 这个能进测试夹具的纯数字。

反向解析最难的是判断逗号到底是小数点还是千分位。一个实用规则是:如果点和逗号同时出现,排在最后的那个当小数分隔符,所以 1,234.56 按美式读,1.234,56 按欧式读。如果只有逗号,单个逗号后跟 1 到 2 位数字当小数(1,51.5),3 位一组的当千分位(1,2341234)。货币符号、百分号、各种空格、全角数字在解析前都要先归一化,末尾带百分号的还要除以 100。

一个浮点小数的提醒

JavaScript 的数字是 IEEE-754 双精度浮点,像 0.1 这种值存不精确,长链运算会冒出 0.1 + 0.2 = 0.30000000000000004 这样的舍入毛刺。要显示干净,把小数位固定下来把误差藏掉就行。但涉及钱且必须精确时,别拿浮点值做运算,用整数最小单位(分)存储和计算,只在最外层格式化。这是财务数字格式化的底线。

想直接试这些格式,可以用 数字格式化工具,输入一个数字同时输出千分位、货币、百分比、紧凑、科学计数、字节大小,并支持反向解析。如果你要的是支票发票上的中文大写金额(壹贰叁肆、元角分整),那是另一回事,用 中文数字转换器 更合适。

数字格式化看着是小事,做对了用户根本不会注意,做错了立刻就是发错地区的金额、读错量级的标签、对不上账的报表。把千分位、本地化分隔符、紧凑分级和反向解析这几件事各自摆正,数字才能在每个场景里都说对话。


Made by Toolora · Updated 2026-06-13