大きな数値の3桁刻みカンマ、やめませんか

※これは、Webに知見を書き残したいがための置き土産。
　願わくば、Qiitaを発信地として、この提案が議論される時代が来ますように。
　訳あって、捨て垢からの投稿。
　有益な議論が始まるきっかけを作るための、問題提起・置き土産です。

#要約
日本のみんな！
今度からは`24,000,000`なんて書かずに、~~`2400,0000`って書こうぜ！~~
その方が有益だからさ！
~~Let's 4桁刻みカンマだ！（←雑）~~

↑追記：後述しますが、4桁刻みには必ずカンマ記号を使え、と主張する記事ではありません。記号の種類を何にするか、ではなく、桁数をいくつにするか、についての記事です。以下の米印追記やコメント欄を参照してください。

ていうかさ、そもそも同じような事（=各言語圏へ配慮した表示振り分け）を既に日付表記でやっているのに、どうしてカンマ表記でもそれを導入しようという動きが無かったのか？そこだよ！

※追記(2021/03/27)：　3桁カンマと4桁カンマの混在は混乱を招くため、4桁刻みの場合は**カンマ以外の記号**を使った方がよいとの指摘が複数寄せられたため、その点もここに追記しておきます。　ただ、タイトルでは「3桁カンマをやめてほしい」と言っているだけで「4桁カンマにしてほしい」とは書いてないので、このタイトルはセーフだと思います。　実際にどの記号を使うべきかの問題はまた別の話になりますが、後述の別の追記も踏まえると、おそらく「空白」が候補として最も相応しいかもしれません。ここでは空白も記号の一種とします。そのため、以降の「4桁刻みカンマ表記」になっている部分を、「4桁刻み空白表記」に置き換えながら読み進めるのが良いかもしれません。

※追記(2021/03/27)：　キロやメガ・ミリやマイクロなどといったSI接頭辞や、そもそも、SI(国際単位系)という国際規格もあります。これ自体も3桁刻みのため、[SI接頭辞にまつわる換算を多く行う業界などでは、むしろ3桁刻み表記の方が有益](#comment-d2a5ce1d6d2f1879d093)、とする指摘もありました。それもごもっともなので、コメントをご覧下さい。また、実は[SIではそもそも、3桁だとか4桁だとかいう区切りの桁数の問題以前に、カンマを使う事自体を推奨していない](#comment-29a1178936d0ce12c563)とのことです。例えば、`24,000,000`も`2400,0000`も本当は推奨されておらず、代わりに空白で`24 000 000`や`2400 0000`と書く事が推奨されています。ただ、桁数については、各国のお好みの分かりやすい桁数で区切る分には問題は無いそうです。これも踏まえると、

- 「円」などといった非SI単位しか使わないがために3桁刻みにするメリットが無い経理などの業界では「4桁刻み空白表記」を使い、
- SI接頭辞換算をよく行う業界など3桁の方が有益な業界では従来通り「3桁刻みカンマ表記」を使う

ことで棲み分けと混乱を防ぎつつ、しかも前者ではついでにSI推奨準拠にもなる、というのが最も現実的な着地点かもしれません。

#【本題の前に】日付表記について

まず、以下の表を見てほしい：

####◆日付時刻における、各表記の読みやすさ・分かりやすさ表

|表記例|日本人にとって|米国人にとって|英国人にとって|備考|
|:----|:-----------:|:-----------:|:-----------:|:---|
|**1616662530**|×|×|×|生データ|
|**2021/03/25 17:55:30**|○|×|×|記号表記|
|**03-25-2021 05:55:30 PM**|×|○|×|記号表記|
|**25-03-2021 05:55:30 PM**|×|×|○|記号表記|
|**2021年03月25日 17時55分30秒**|○|×|×|各母国語表記|
|**March 25th, 2021 5:55:30 p.m.**|×|○|×|各母国語表記|
|**25th March 2021 5:55:30 p.m.**|×|×|○|各母国語表記|


このように、日付時刻においては、各言語圏にとっての最も**分かりやすい表記がバラバラ・まちまち**だ。
そのため、データを保存する時は**生データ**（例えばここではUNIXタイムスタンプ）を基準とし、表示する時は各表記へと**変換表示**する環境が整っている。

生データはコンピュータにとってのみ分かりやすい表記のため、人間が見ても分かりづらいが、
それが基準となっているお陰で、データが一意に定まる。その結果、例えば

- **日本語版Excel**でとある日付データを開くと 「`2021年03月25日`」 と表示されてくれる一方、
- **英語版Excel**で全く同じデータを開くと 「`March 25th, 2021`」 と表示されてくれるため、

それぞれの言語圏の人にとって分かりやすい表示が実現できる。
生データに対し、**「変換表示」という名のヴェール**を被せてやるのだ。
このヴェールを使った方法は、人類が工夫して編み出した、日付データを汎用的に保存・表示するための素晴らしい知恵だ。


#【本題】桁数の多い数値表記について

ところがどっこい、私たちは桁数の多い数値を表記する時、どうしているだろうか。
以下の表を見てみよう：

####◆桁数の多い数値における、各表記の読みやすさ・分かりやすさ表

|表記例|日本人にとって|英語圏人にとって|備考|
|----:|:-----------:|:-------------:|:---|
|**24000000**|×|×|生データ|
|**2400,0000**|○|×|カンマ表記(4桁)|
|**24,000,000**|△(本来は×)|○|カンマ表記(3桁)|
|**2400万**|○|×|各母国語表記|
|**24 million**|×|○|各母国語表記|
|**24百万**|×|×|誰得クソ表記|
|**2400 ten thousand**|×|×|誰得クソ表記|

事務仕事をする時、業務なりプライベートなり何なり、
私たちが普段一番目にする表記方法は表中の「**24,000,000**」、
つまり上から3番目の、**3桁刻みカンマ表記**ではないだろうか。

ここで、さっきの[日付時刻の例](#本題の前に日付表記について)とこれを比較してみよう。

本来は、日付時刻と同様に、
**桁数の多い数値表記においても、各言語圏にとっての分かりやすい表記方法が異なるはず**なのに、
**なぜか生データを基準とした変換表示環境が整備されておらず、浸透していない**事に気づいただろうか。

つまり、日本人は変換表示の助けを借りる事無く、
無理して性に合わない欧米流3ケタ刻みのカンマ表記を地頭で理解しようとし続けているため、
「**24,000,000**」という表記を見てそれがいくつなのかをパッと読み取れない日々を強いられている。

問題は、上表の 「**△(本来は×)**」 と書かれている部分。
英語圏人は無理して4ケタ刻みのカンマ表記の相手をしなくても良い日々を送っているため、「**2400,0000**」が「×」でも問題ない。
一方、日本人は無理して3ケタ刻みのカンマ表記の相手をしているため、本来は「×」のはずのそれと向き合い続けている。
その結果、私たち日本人は「3ケタ刻みのカンマ表記に慣れる練習」という名の無駄な鍛錬・苦労を強いられ、結果的には「△」程度の判読能力を獲得してしまっている。例えば、**「10,000」を見て「1万」だと分かる程度には読めるようになって**しまっている。

しかし、日付時刻の例を見てからこれを見てみると、
本来はそこまでして**3ケタ刻みの判読術を習得する必要はない**事に気づくはずだ。
それぞれにとって分かりやすい表記への**変換表示を、コンピュータに任せれば良い**からだ。

それに、私達日本人が身に着けてきたこの無駄な判読能力は、
「**10,000**」こそ読めるものの、「**24,000,000**」をパッと読めない程度には中途半端なものだ。
この中途半端な判読能力は、これまで無理してきた犠牲の上に成り立っている。
不便を感じながら仕方なく苦労して得た能力が、これである。

（挙句、 「**24百万**」とかいう誰得クソ表記が誕生する始末。
　例えば、会社概要で「資本金 24百万円」とかいう表記を見たことがあるだろう。
　こういう表記は、**日本人にも英語圏人にも理解しづらい、誰得**な表記である。滅んでほしい。
　これは日本人にとってはケタの区切り方が違うため分かりづらく、英語圏人にとっては漢字が分からない。
　それはあたかも、英語圏人に対して 「**2400 ten thousand**」 と言っているようなものだ。
　ただ、この誰得クソ表記については本題から逸れるので、以降は触れない。
　このクソ表記は、日本人が無理して3桁刻み表記に慣れようとした結果生まれた、
　ろくでなしの副産物なのだ。）

#なぜ、3桁刻みカンマ表記が日本に浸透してしまったのか？

ただ、理由も無く3桁が浸透した訳ではない。当然、それなりのいきさつがある。
その点で、3桁表記にも弁解の余地がある。

コンピュータの無かった時代は当然、数値の載った書類などは**紙ベース**であり、
日本人が3ケタ表記に無理に合わせる意義は充分にあった。
**書類を国際的に送り合う時に、インクで書かれたカンマ表記が統一されていないと困る**からだ。
明治時代、漢数字しかなかった日本に算用数字が上陸した時、
日本国内では「3ケタ表記に統一すべき派」と「4ケタ表記に統一すべき派」が激しく争ったという。
争いの結果、国際的書類のやり取りなどの観点から、3ケタ派が勝ったのだ。
それはまあしょうがない。当時はコンピュータが無かったし、
日本はまだ国力が弱く、**欧米列強をモデルに**して追いつこうと必死だったからだ。

しかし、**今はコンピュータという文明の利器がある**。
その上、**日付時刻表記**については、私たちは既に**その恩恵を十分に生かした変換表示環境を享受**できている。

なのになぜ！カンマ表記でも同じことをしようと思わないのだ！文明の利器を活かさないのだ！
私はそこを問いたいのだ！

#どうなってほしいのか

理想としてはこうだ：

まず、数値の**生データ（カンマ無し数値）**を各表記へと**変換表示**できる環境を整備しておく。
生データはコンピュータにとってのみ分かりやすい表記のため、人間には分かりづらいが、
それを基準とする事で、データが一意に定まる。
実際、ここまでは整備されている。問題はここからだ。

各言語圏にとっての読みやすさのため、
生データに対し、**「変換」という名のヴェール**を被せてやる必要があるのだが、
現状ではこの**ヴェールの選択肢がいかんせん、「3ケタ刻みカンマ表記」の一択**しか無い。
これではヴェールの意味が無い。

そこで、既存の 「3ケタ刻みカンマ表記」ヴェール に加えて、**「4ケタ刻みカンマ表記」ヴェール** も追加する。
これは、例えば英語版Excelには追加せずとも、**日本語化パッチにはそれを追加**しておく。

その結果、例えば

- **日本語版Excel**で「**24000000**」というデータを表示すると 「`2400,0000`」 と出してくれる一方、
- **英語版Excel**で全く同じデータを表示すると 「`24,000,000`」 と出してくれるようになる。

こうして初めて、**それぞれの言語圏にとって分かりやすい**表示となる。

---

マイクロソフトジャパン、これは君の仕事でもある。
**日本語版Excelでカンマボタンを押したら、4ケタ刻みの表示を出せる**ようにしなさい。
「**通貨」を選んだら、4ケタ刻みの表示が出るように**しなさい。
「表示形式」のラインナップの中に、「**4ケタ刻みカンマ表記版 通貨**」を追加しなさい。

---

そして、これはあわよくば、日本中の人々の仕事でもある。

今更、大量の3ケタ刻みデータが蔓延してしまった現代に、地道にこれを修正していくなんて、**大変すぎる**。
無理な話でもある。

けれど、ITの世界なんかいつもそんなことの繰り返しだったじゃないか。
**HTML 4.01**で書いてきたサイトは、**HTML5**、ひいては**HTML Living Standard**準拠の記法に書き換えてきた。
**Shift_JIS**で保存してきたデータは、**UTF-8化**してきた。
**Cookie**には、**SameSite属性を後付け**してきた。
地道に、**IPv4**を**IPv6**へと置き換えてきた。
各言語につけても、**バージョンアップ**との闘いだった。 **Python2** から **3** へ上げてきた。
古いものは**レガシー**と呼んで捨ててきた。
同じことをすればいいのだ。

しかも、影響範囲は日本国内だけだ。IPv6のような全世界を巻き込む壮大な置き換えではない。
更に言えば、わざわざ置き換えなどしなくとも、新規のデータのみ4桁表記に統一してやるんでも、全然いいのだ。

2021年現在、未だに、Shift_JISは撲滅されていない。
IEも、未だに生きている。未だにIPv4は主流だし、PHP5もゾンビのように動き続けている。
同じように、**今後も長い間、3ケタ区切り表記はゾンビのように生き残り続ける**だろう。

しかし、私たちエンジニアは、**UTF-8化された環境の素晴らしさ**を知っている。
**IPv6化された世界の素晴らしさ**を知っている。

同じように、**4ケタ刻み表記化された世界の素晴らしさ**を、
👇👇👇　今ここに、見せてあげよう！　👇👇👇

> 先生 「32ビットのint型の最大値は、 **2,147,483,647** だよ！　はい読んで！」

> Tom "Hey! It's **2 billion 147 million 483 thousand 647**"!
> 太郎 「イチジュウヒャクセンマン…ええと…めんどくせーよ！！」

> 先生 「32ビットのint型の最大値は、 **21,4748,3647** だよ！　太郎君！読んで！」
> 太郎 「読める、読めるぞ！　**21億4748万3647**だ！！！！」
> 先生 「👍」

#そもそも、何のためのカンマ表記？

そもそも、何のためのカンマ表記なのか。

それは、**「イチジュウヒャクセンマン…」とケタを数えなくてもいいようにするため**のカンマ表記だ。
上記の例で、Tom君は「2,147,483,647」を容易く読めていたよね。
でも、それは数字を3ケタ刻みで読む言語圏のためのもの。
4ケタ言語圏の私達は、**ケタを数えなくてもいいために考案されたはずのカンマ表記で、ケタを数えている**。
なんと無意味で本末転倒な事をしてきたか、分かっただろう！？

> 3ケタ表記はなんとなく分かりづらいな～

とは思いつつも、
**何故分かりづらいのか**を考えず、何の**疑問も持たず**に

> 周りが3ケタを使ってるから不便でも我慢して使わなきゃ！

 と**盲信**して長い物に巻かれる人が多いと思う。それどころか、

「**言語によって3ケタ刻みの言語と4ケタ刻みの言語があり、日本語や中国語など東洋の言語では4ケタ刻み、西洋の言語では3ケタ刻みで数字を読み上げる場合が多いんだよ**」

という知見自体すら知らない人が多い疑惑。なぜなら、家族や同僚にこの話をしたら、

> へえ～、英語では3ケタ刻みで数字を読み上げるの！？！？

というレベルで驚かれたからだ。

唖然とした。
**おまいら、そもそもそれも知らずに、これまでカンマ表記を続けてきたのか**。何やねん。
おまいらの**そういうとこだよ！4ケタ表記が広まらないのは！**

#最後に（蛇足）

最後に、

> いや、4ケタ刻み表示を要求してくる奴、ナメてんの？ このグローバル化時代、3ケタ表記になじんでこそ人材として優れているんだぞ。

とかのたまう意識高い系が今後沸いては困るので、あらかじめモノ申しておく。

貴方が数字の3ケタ表記を見て、**数字の英語読みが脳内再生されるほどのネイティブ寄りな脳**をお持ちなら、ぜひとも貴方には3ケタ刻みを貫いていただきたい。それは貴方の素晴らしい能力だ。
しかし、**それは貴方の中だけである。みんなに強要してはいけない。**
貴方が普段使いしているメモ帳にもさぞ、**番地から先に書く英語式住所表記**や、**英語式時刻表記**が書いてあって、それが素晴らしいと思っていて、完全に慣れているんでしょうね。
4ケタ刻みで数字を読む言語圏の存在だけでなく、**小数点をカンマで書く言語圏の存在**や、「**ウルル**」「**デナリ**」という命名についても、みんな英語圏をナメてるとお思いなんでしょうね。

統一化・均質化・標準化も確かに大事だが、それだけでなく、
**各言語にとっての分かりやすさや母国語表記・母国語命名・母国語的感性の方も、それぞれ尊重し、大切にするべき**なんですよ。それこそが、真のグローバル化ではありませんか？

#追記（2021/03/26）

非常に有用な情報をコメントでいただいたので、ここに追記しておきます。
特に後半のリンク先。こんな決まりがあったんですね。知らなんだ。
そのうちこの提案内容が規則を作る側に持ち込まれて、改訂可能性も含めた議論がなされる機会があればいいんですけどね。

> 3桁区切りと4桁区切りのカンマがあると混乱するので、
> 4桁の場合は違う区切り文字を使うのもありかもしれませんね。

> 3桁区切りは会社計算規則で定められているので
> これも大きな影響を与えていると思います。
> https://www.zeiken.co.jp/hourei/HHKAI000100/57.html