重学数字——分节读数法
最近在写一个库,功能是阿拉伯数字转中文数字。你要知道写代码,从来都是,代码未动,思路先行,要想想清楚思路就得弄明白某个功能的规则。比如我要写的阿拉伯数字转中文数字,我们就需要弄明白它的一切规则。
数字的读作和写作
两者的格式如下:
写作:1234 读作: 一千二百三十四
几乎各个语系都有自己的数字也有自己的写法,但是毫无疑问,这些语言中的数字无论读法还是写法都过于原始和简陋。
印度人发明的阿拉伯数字极大的改变了数字的写法,简洁直观,可以联想下繁体中文数字的写法,阿拉伯数字对各个语言系统的数字都是一种革命,这个非常好理解没啥好说的。
下面介绍分节读数法,其重要程度不亚于阿拉伯数字,它则是对各个语言中读法的革命。
假如有数字:12345678
请你用最快的速度读出来,是不是有点头疼,如果数字更长,比如国家统计局,经常涉及到万亿数字全部写起来可能就是这样:1234567898765,如果是德国人读这个数字可是要了老命,他们的数字是通过加法得到的,比如 92 读 90+2,类似这样,读这种大数直接原地崩溃。
数字发明出来如果没法读,人类就无法形成直观的认识,其效果将会大打折扣,还好我们有分节读数法。
数位顺序图
首先请出来我们的数位顺序图:
网上没有好看的图,自己画的。
接下来我们就看看如何读数:
首先,数字以小数点为界:分为整数部分和小数部分,其中小数点读作点,没有则不读。
小数部分
数字直接翻译为中文数字即可,没有省略现象,连续的零也要读出来,比如 0.001 读作零点零零一。
整数部分
-
数级:一级表示某几个连续挨着的数字,按照我国读数习惯,采用四位分级法(也叫四位进制法,万分制,国际通用的是千分制),每四个数位一级。比如
1111
四个一所在位置就是 个级;1111_2222
四个一所在位置是万级;1111_2222_3333
四个一所在位置是亿级。这里个级、万级、亿级等称为数级。 -
数位:一个数级包含一组数字,这组数字按照一定顺序排列,它们所占的位置叫做数位。同一个数字所在的数位不同,表示的意义也就不同。我们国家四位一数级,所以四个数字的数位分别是「个、十、百、千」。
-
计数单位: 每一个数字表示的真正意义,由数位加上数级组成。比如 1234_5678 其中 2 出现在万级,数位是百,所以它的计数单位是:百万。我们读数字默默背诵的:个、十、百、千、万、十万、百万、千万、亿、十亿、就是计数单位。
注意:无论是数级还是数位,个都是省略的。数级前面的零不用读,例如:1000_0000 读一千万,不是一千零万。其他情况下连续的零,只需要读一次,例如: 1000_0001 读一千万零一。
我们来一个实战数字 123456789876.4321
的读法。
- 先四位分节:
1234_5678_9876.4321
- 先读数位末尾加上数级,个能够省略。
- 最终读法为:一千二百三十四亿 五千六百七十八万 九千八百七十六(个)点四三二一
可以看到分节基本上把所有的数字的读法变成了个十百千一样简单容易,即使是国际三位进制原理类似,不得不说,分节读数真是伟大的发明。其发明者是德国数学家Adam_Ries,但在德国没有推行下去,现在德国小孩读数字也比较费劲,好在人家基本会英语问题不大。
我们完全弄明白了,数字的读法,本来事情到此就该结束了,但是对于使用简体中文的人来讲,比较头疼的事情要来了,那就是大数的读法。
比如针对天河一号的描述不同城市的研发人员都无法统一口径,万亿和亿亿换着来,还有媒体报道用兆。
作为一个普通人对这些不同单位表示同样意思的数字无感,甚至是科研人员也很头疼,但是为什么繁体中文世界没有这个困恼,这个陈年旧案要追回到 1984 年,那年法定计量单位的制定者。
请期待下篇简体中文大数如何读。
参考
- 数位顺序表
- 苏教版四年级上册数学