为汉字文化圈提供更易读的数字分组
万进制计划
东亚语言以万为单位计数。
数字分组也应如此。
错位
书写阿拉伯数字时,我们习惯每三位加一个逗号:1,000,000,000。用中文读这个数是「十亿」。虽然打了三个逗号,但中文使用者实际上按四位一组来读数:亿、万、个位。
三位分组是千进制,即以千为单位来分组的英美方式。中文、日文、韩文使用万进制,以万为单位分组。正因为这种不一致,每次看到用阿拉伯数字写的大数时,都要在脑中多做一步换算。
十二亿三千四百五十六万七千八百九十
并排比较
输入任意数字。同一串数位在三位逗号与四位下划线下会被切分成不同的群组。看哪一种更符合中文的读法。
提案
以下划线(_)作为万位分隔符。
下划线在ASCII范围内,任何键盘都能直接输入。它与逗号在视觉上有足够的区别,在数字语境中也没有其他含义。Python、Rust等多种编程语言已经将下划线作为数字字面量的分隔符,在软件生态中并不陌生。
现行
1,234,567,890
提案
12_3456_7890
与千位逗号并用
下划线表示万位,逗号表示千位,两种体系层次分明地并存。在国际文档或需要混用的场合非常有用。
为何不用四位逗号
最简单的替代方案是每四位打一个逗号。但逗号作为三位分隔符已在全球固化。软件、金融系统和国际标准都以此为前提运转,习惯了三位逗号的读者反而会因四位逗号产生误读。
与其改变符号,不如增加符号,这样既不与现有表记冲突,又能获得万进制的可读性。
其他候选
在确定下划线之前,我们考察了几种其他符号。
-
间隔号
· U+00B7在东亚印刷文化中很常见,与逗号在视觉上区分明显。但大多数键盘无法直接输入,存在日常使用的障碍。
-
窄空格
U+2009获得ISO 80000-1的推荐,符合标准。但与普通空格肉眼无法区分,各类文本处理工具的处理方式也不一致。
-
撇号
' U+0027在ASCII范围内,输入方便,但瑞士已将其用作三位分隔符,存在混淆的可能。更关键的问题是:Microsoft Word、Google Docs和手机键盘等许多软件会自动将撇号转换为弯引号。
-
普通空格
U+0020输入最为方便,但会将数字分割成独立的词元,在搜索、复制粘贴和数据解析时造成问题,还可能在数字中间换行。
如何开始使用
写作中,现在就可以开始。按下划线键即可。
在软件和数据领域,目前还没有自动处理这种表记的标准,解析前需要一个显式的规范化步骤——去掉下划线再解析。