「4桁ごとに区切ると読みやすいよ」「は?」

大きな数字は4桁ごとに区切ると読みやすくなるよって言っても、すぐには理解してくれないことがよくあるので表で説明。


一般的に数字は3桁ごとにコンマを振るようになっているが、これは欧米にとって都合のいいやり方。*1

表記(3桁毎にコンマ) 読み方(英語)
1,000 1 thousand
1,000,000 1 million
1,000,000,000 1 billion
1,000,000,000,000 1 trillion

例: $ 12,345,678 → 12 million 345 thousand 678 dollars


日本を含め東アジアでは4桁ごとに区切ると都合がいい。

表記(4桁毎にスペース) 読み方(日本語)
1 0000 1万
1 0000 0000 1億
1 0000 0000 0000 1兆
1 0000 0000 0000 0000 1京

例:¥ 12 3456 7890 → 12億3456万7890円

区切るのに使う記号は何でもいい。従来通りのコンマでもいいし、スアポストロフィでもハイフンでも何でもいい。


さらに、インドでは3桁でも4桁でもない別の方式が使われているらしい。

インドの命数法 - Wikipedia

ちなみに、コンピュータの方は既に世界の様々な事情に合わせて桁区切りできるようになっている。例えば、以下のコードを実行してみると、最初3桁、次からは2桁というインドの変なやり方で区切れるようになっていることがわかる。

#include <string>

void test(void)
{
    std::wstring output;
    wchar_t buf[256];
    wchar_t *sample = L"123456790";

    output += L"日本語:";

    if (! GetCurrencyFormat(0x0411, LOCALE_NOUSEROVERRIDE, sample, NULL, buf, 256)) {
        return;
    }

    output += buf;
    output += L"\n";
    output += L"ヒンディー語:";

    if (! GetCurrencyFormat(0x0439, LOCALE_NOUSEROVERRIDE, sample, NULL, buf, 256)) {
        return;
    }

    output += buf;

    MessageBox(NULL, output.c_str(), L"", MB_OK);
}

f:id:nextugi:20150731234041p:plain

そういえば、最近インドの実情に合わせた電卓を発売したらバカ売れしたとかいう話があったか。
toyokeizai.net

ちにみに、何で日本ではこうなっていないのか調べてみたのだが、明治時代から4桁に変更しようという話は一応ある模様。
ameblo.jp

他にも明治時代に決まってしまった不合理なルールと言えば、モールス符号があるか。オリジナルのモールス符号は、英文を表現したときに、電文の長さが短くなるよう可変長のコードが採用されている。しかし、和文モールスでは平仮名の頻度に関係なく割り当てられていているので短くならないという。これなら、初めから固定長にした方が聞き取りやすかっただろうに。6ビットあれば「平仮名+記号類+数字」がちょうど入りそうだし。*2

このように、表面だけ真似して本質な部分が置き去りになっている状態を「カーゴカルト」と呼ぶので覚えておこう。

*1:コンマではなくピリオドやアポストロフィで区切る地域もある。いずれにせよ3桁ごとに区切るのは同じ。

*2:よく考えると、当時はそもそもビットという概念自体がなかったね。よく可変長にするとか思いついたものだ。