数字を英語の読み方に変換します。
Vue.jsで実装してみました。JS標準のBigIntも面倒ながら使っています。
(BigIntは以前「仏典数詞変換」で使用したライブラリのように実数の計算に対応してもらわないと指数表記との相性が悪い。。)
こちらで使えます。
https://tsuteto.github.io/EngNumConv/
- ショートスケール、ロングスケール両対応
- ロングスケールについては英国表記と欧州表記に対応
(欧州各国は非英語圏ですが英語の語彙と共通しています) - 辞書の語彙を使った標準的な命数法(Dictionary system)とJonathan Bowsers氏による拡張定義(Googology Wiki, -Illion Numbers)の命数法に対応
- 変換結果の出力形式
- Plain: 通常のテキスト(単語中の行折返しができるようソフトハイフン入り)
- Hyphenated: 単語(-illion)を構成要素ごと細かくハイフネーションした形式
- Described: 単語(-illion)の成り立ちが分かるよう要素ごとにTierの色付けと序数を加えた形式
特に拡張定義により次のような大きな数に対応します。
ショートスケール:
ロングスケール:
簡潔に表すとおおよそ
一方、辞書による命数法はショートスケールで 10 ( 3 × 10100000 + 3 ) までとなります。(millinillion = 103003 より先は-illi-を連結していく単純なものとなり非常に長くなります)
拡張定義においてはTierという概念が出てきます。Described表示での色分けの意味になりますので簡単に説明します(ショートスケール基準)。
millionを1番目、billionを2番目、trillionを3番目…というふうに、なんとかillion(以下"-illion"と呼びます)を数えるとmillillionが1000番目にあたり、この一つ下999番目のnovenonagentanongentillionまでで一つの体系を成しています。これをTier 1としてグループ化しています。millillion以降は少し形は違いますがmillillionのmillillion倍(2乗)をdu-millillion、3乗をtri-millillion、4乗をquadri-millillionとTier 1を反復しまたmillillionの1000乗に到達するとmicrillion(2番目)、2000乗はnanillion(3番目)と新たな体系が始まり、1000番目のkillillionの一つ下enneenneaconteenneahectillionまでを異なるグループとしTier 2と呼ぶといった具合です。
つまり1000個ごとに異なる命名規則になっているためグループ化しているということです。
次にそれぞれのTierの範囲とDescribed表示での色を示します。
0 ~ 1,000,000未満
Described表示では無色
1,000,000 (million) ~
Described表示では黄色
Described表示では青
Described表示では緑
Described表示では赤
multillionまでの一部対応です
See package.json
MIT License
- Googology Wiki - I learned names of big numbers a lot there.
- Pointless large Number Stuff by cookiefonster - Detailed explanation of the Bowsers' number system. This helped me a lot to implement.
- Extended Standard in Aarex Googology by Aarex Tiaokhiao - Another explanation of the number system. This also helped me.