为汉字文化圈提供更易读的数字分组

万进制计划

东亚语言以万为单位计数。
数字分组也应如此。

试着用中文读这个数
1,234,567,890 12_3456_7890

错位

书写阿拉伯数字时,我们习惯每三位加一个逗号:1,000,000,000。用中文读这个数是「十亿」。虽然打了三个逗号,但中文使用者实际上按四位一组来读数:亿、万、个位。

三位分组是千进制,即以千为单位来分组的英美方式。中文、日文、韩文使用万进制,以万为单位分组。正因为这种不一致,每次看到用阿拉伯数字写的大数时,都要在脑中多做一步换算。

中文读法

十二亿三千四百五十六万七千八百九十

并排比较

输入任意数字。同一串数位在三位逗号与四位下划线下会被切分成不同的群组。看哪一种更符合中文的读法。

输入数字后即可显示比较。

  • 三位分组 1,234,567,890
  • 万位分组 12_3456_7890
  • 中文读法 12亿3456万7890

提案

以下划线(_)作为万位分隔符。

下划线在ASCII范围内,任何键盘都能直接输入。它与逗号在视觉上有足够的区别,在数字语境中也没有其他含义。Python、Rust等多种编程语言已经将下划线作为数字字面量的分隔符,在软件生态中并不陌生。

现行

1,234,567,890

提案

12_3456_7890

与千位逗号并用

下划线表示万位,逗号表示千位,两种体系层次分明地并存。在国际文档或需要混用的场合非常有用。

并用 1,2_34,56_7,890

为何不用四位逗号

最简单的替代方案是每四位打一个逗号。但逗号作为三位分隔符已在全球固化。软件、金融系统和国际标准都以此为前提运转,习惯了三位逗号的读者反而会因四位逗号产生误读。

与其改变符号,不如增加符号,这样既不与现有表记冲突,又能获得万进制的可读性。

其他候选

在确定下划线之前,我们考察了几种其他符号。

  1. 间隔号

    · U+00B7

    在东亚印刷文化中很常见,与逗号在视觉上区分明显。但大多数键盘无法直接输入,存在日常使用的障碍。

  2. 窄空格

    U+2009

    获得ISO 80000-1的推荐,符合标准。但与普通空格肉眼无法区分,各类文本处理工具的处理方式也不一致。

  3. 撇号

    ' U+0027

    在ASCII范围内,输入方便,但瑞士已将其用作三位分隔符,存在混淆的可能。更关键的问题是:Microsoft Word、Google Docs和手机键盘等许多软件会自动将撇号转换为弯引号。

  4. 普通空格

    U+0020

    输入最为方便,但会将数字分割成独立的词元,在搜索、复制粘贴和数据解析时造成问题,还可能在数字中间换行。

如何开始使用

写作中,现在就可以开始。按下划线键即可。

在软件和数据领域,目前还没有自动处理这种表记的标准,解析前需要一个显式的规范化步骤——去掉下划线再解析。