重学数字——分节读数法

最近在写一个库,功能是阿拉伯数字转中文数字。你要知道写代码,从来都是,代码未动,思路先行,要想想清楚思路就得弄明白某个功能的规则。比如我要写的阿拉伯数字转中文数字,我们就需要弄明白它的一切规则。

数字的读作和写作

两者的格式如下:

写作:1234 读作: 一千二百三十四

几乎各个语系都有自己的数字也有自己的写法,但是毫无疑问,这些语言中的数字无论读法还是写法都过于原始和简陋。

印度人发明的阿拉伯数字极大的改变了数字的写法,简洁直观,可以联想下繁体中文数字的写法,阿拉伯数字对各个语言系统的数字都是一种革命,这个非常好理解没啥好说的。

下面介绍分节读数法,其重要程度不亚于阿拉伯数字,它则是对各个语言中读法的革命。

假如有数字:12345678

请你用最快的速度读出来,是不是有点头疼,如果数字更长,比如国家统计局,经常涉及到万亿数字全部写起来可能就是这样:1234567898765,如果是德国人读这个数字可是要了老命,他们的数字是通过加法得到的,比如 92 读 90+2,类似这样,读这种大数直接原地崩溃。

数字发明出来如果没法读,人类就无法形成直观的认识,其效果将会大打折扣,还好我们有分节读数法。

数位顺序图

首先请出来我们的数位顺序图:

数位顺序图.png

网上没有好看的图,自己画的。

接下来我们就看看如何读数:

首先,数字以小数点为界:分为整数部分和小数部分,其中小数点读作点,没有则不读。

小数部分

数字直接翻译为中文数字即可,没有省略现象,连续的零也要读出来,比如 0.001 读作零点零零一。

整数部分

  1. 数级:一级表示某几个连续挨着的数字,按照我国读数习惯,采用四位分级法(也叫四位进制法,万分制,国际通用的是千分制),每四个数位一级。比如 1111 四个一所在位置就是 个级1111_2222 四个一所在位置是万级1111_2222_3333 四个一所在位置是亿级。这里个级、万级、亿级等称为数级

  2. 数位:一个数级包含一组数字,这组数字按照一定顺序排列,它们所占的位置叫做数位。同一个数字所在的数位不同,表示的意义也就不同。我们国家四位一数级,所以四个数字的数位分别是「个、十、百、千」。

  3. 计数单位: 每一个数字表示的真正意义,由数位加上数级组成。比如 1234_5678 其中 2 出现在万级,数位是百,所以它的计数单位是:百万。我们读数字默默背诵的:个、十、百、千、万、十万、百万、千万、亿、十亿、就是计数单位。

注意:无论是数级还是数位,个都是省略的。数级前面的零不用读,例如:1000_0000 读一千万,不是一千零万。其他情况下连续的零,只需要读一次,例如: 1000_0001 读一千万零一。

我们来一个实战数字 123456789876.4321 的读法。

  1. 先四位分节:1234_5678_9876.4321
  2. 先读数位末尾加上数级,个能够省略。
  3. 最终读法为:一千二百三十四亿 五千六百七十八万 九千八百七十六(个)点四三二一

可以看到分节基本上把所有的数字的读法变成了个十百千一样简单容易,即使是国际三位进制原理类似,不得不说,分节读数真是伟大的发明。其发明者是德国数学家Adam_Ries,但在德国没有推行下去,现在德国小孩读数字也比较费劲,好在人家基本会英语问题不大。

我们完全弄明白了,数字的读法,本来事情到此就该结束了,但是对于使用简体中文的人来讲,比较头疼的事情要来了,那就是大数的读法。

比如针对天河一号的描述不同城市的研发人员都无法统一口径,万亿和亿亿换着来,还有媒体报道用兆。

http://www.cngrid.org/hjjs/jqyjxx/fzx/

作为一个普通人对这些不同单位表示同样意思的数字无感,甚至是科研人员也很头疼,但是为什么繁体中文世界没有这个困恼,这个陈年旧案要追回到 1984 年,那年法定计量单位的制定者。

请期待下篇简体中文大数如何读。

参考

全部评论

相关推荐

与火:这不接? 留子的钱不挣白不挣
点赞 评论 收藏
分享
10-17 10:05
已编辑
北华大学 全栈开发
牛客872465272号:掉头发了哥
点赞 评论 收藏
分享
秋招进行到现在终于能写总结了。完全没想到战线会拉这么长,过程会如此狼狈,不过更应该怪自己太菜了。好在所有的运气都用在了最后,也是有个去处。背景:双2本硕科班,无竞赛,本科一段研究所实习,硕士一段大厂暑期实习但无转正。技术栈是C++ & Golang,实习是客户端音视频(而且是鸿蒙端开发),简历两个C++项目一个Golang项目。主要投递岗位:后端,cpp软开,游戏服务端,测开,以及一些不拘泥于Java的岗位。从8月起总共投递123家公司,笔试数不清了,约面大约30家。offer/oc/意向:友塔游戏(第一个offer,面试体验很好,就是给钱好少南瑞继保(计算机科班点击就送(限男生),不...
乡土丁真真:佬很厉害,羡慕~虽然我还没有到校招的时候,也想讲一下自己的看法:我觉得不是CPP的问题,佬的背书双2,技术栈加了GO,有两段实习。投了123,面了30.拿到11个offer。这个数据已经很耀眼了。这不也是CPP带来的吗?当然也不止是CPP。至少来说在这个方向努力过的也会有好的结果和选择。同等学历和项目选java就会有更好的吗?我个人持疑问态度。当然CPP在方向选择上确实让人头大,但是我觉得能上岸,至于最后做什么方向,在我看来并不重要。至于CPP特殊,有岗位方向的随机性,java不是不挑方向,只是没得选而已。也希望自己以后校招的时候能offer满满
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务