このツールでできること
このツールは、数値を英語のスペル(書き出した形)に変換します。出力スタイルは次の3種類から選べます。Words(数のスペル)=数そのものを英語の言葉に書き出します。Currency(通貨表記)=ドルとセントのように主単位・補助単位を含むお金のフレーズにします。Check(小切手書き)=銀行小切手で使われる標準的な書式で、金額を言葉で表し、セント部分は「○/100」という分数の数字で表記します。スペルは「ショートスケール(短進法)」に基づいており、billion は \(10^9\)、trillion は \(10^{12}\) となります。これは英語圏全体で共通の数え方です。通貨名は国や地域ごとに異なりますが、スペルの基本ルールはどこでも同じです。
使い方
最初の入力欄に数字を入れます。小数点、マイナス記号、桁区切りのカンマも入力できます。次に出力したい書式を選びます。Currency モードでは通貨を、Check モードでは小切手に印字する通貨名と、必要に応じて締めの語(exactly または only)を選びます。最後に文字の大小を選択します(小文字・大文字・Title Case・文頭のみ大文字)。指定した書式設定は文字列全体の最後に適用され、結果がその場で更新されます。
変換のしくみ
整数部分は右から3桁ずつのグループに分けられます。各グループは「百の位」→「十の位(twenty-one のように一の位とハイフンでつなぐ)」→「桁を表す語(thousand, million, billion など)」の順にスペルされます。スペルされる数の構造は次のように表せます。
$$N=\sum_{i=0}^{k} g_i\cdot 1000^{i}\;\Rightarrow\;\text{join}(\text{group}_i + \text{scale}_i)$$アメリカ式に従い、純粋な数のスペルには「and」を入れません。Words モードでは、小数点以下の数字は「point」のあとに1桁ずつ読み上げられ、先頭のゼロもそのまま残るため、.05 は「point zero five」となります。出力全体は次のように構成されます。
$$\text{words} = \text{intToWords}(\text{integer}) \; [+\; \text{"point"} + \text{digits}]$$Currency モードと Check モードでは、浮動小数点による誤差を避けるため、金額はセント単位の整数に丸められます。
$$\text{cents}=\operatorname{round}(x\times 100),\;\text{whole}=\lfloor \text{cents}/100\rfloor,\;\text{minor}=\text{cents}\bmod 100$$
具体例
Currency モードで、通貨を dollars、文字大小を Title Case に設定し、1234.05 と入力した場合を見てみましょう。整数部 1234 は「one thousand two hundred thirty-four」となり、セント部の 5 は「five」となるので、全体で「one thousand two hundred thirty-four dollars and five cents」になります。これに Title Case を適用すると 「One Thousand Two Hundred Thirty-Four Dollars And Five Cents」 となります。
よくある質問
数のスペルに「and」が入らないのはなぜ? アメリカ英語では、整数のスペルの途中に「and」を入れません。「and」はお金の主単位と補助単位を区切るときだけ使われます。
セントがない通貨はどう処理されますか? 円(Yen)・元(Yuan)・ウォン(Won)・ドン(Dong)には補助単位がないため、丸めたあとの整数の金額だけがスペルされます。
何も入力しないとどうなりますか? 空欄はゼロとして扱われ、「zero」を返します。