整数を英語で表現する2(中学レベル)
あまり大きくない整数を英語で表す方法について説明します。 どれくらいかというと、0から億くらいでしょうか。 それ以上の整数の表現は次章になります。
自分は中学レベルの英語の知識も危うかったため調べました。 せっかくなのでその内容をここに記載しておきます。 俺もわからんぜって方は、ここじゃなく別のサイトに飛んで、 ちゃんとした所で勉強したほうがいいかもしれません。 間違っている可能性がありますので。
では、あまり大きくない整数をshort scaleの英語で 表現する方法について説明します。
まずは0から19までの表現を示します。 せっかくなのでCommon Lispを使って出力します。 これらは暗記するしかありません。
* (dotimes (i 20) (format t "~D: ~:*~R, ~:*~:R~%" i)) 0: zero, zeroth 1: one, first 2: two, second 3: three, third 4: four, fourth 5: five, fifth 6: six, sixth 7: seven, seventh 8: eight, eighth 9: nine, ninth 10: ten, tenth 11: eleven, eleventh 12: twelve, twelfth 13: thirteen, thirteenth 14: fourteen, fourteenth 15: fifteen, fifteenth 16: sixteen, sixteenth 17: seventeen, seventeenth 18: eighteen, eighteenth 19: nineteen, nineteenth
出力は「数: 英語表記, 序数表記」となります。
20から99までの表現は、十桁と一桁を組み合わせて表現します。 20, 30, ...といった十桁の表現の仕方も、暗記するしかありません。
* (dotimes (i 10) (format t "~D: ~:*~R, ~:*~:R~%" (* i 10))) 0: zero, zeroth 10: ten, tenth 20: twenty, twentieth 30: thirty, thirtieth 40: forty, fortieth 50: fifty, fiftieth 60: sixty, sixtieth 70: seventy, seventieth 80: eighty, eightieth 90: ninety, ninetieth
それでは2桁の数を考えます。
例えば48の場合、40-8のようにあらわします。
【例】48 → forty-eight
十桁と一桁の間にハイフン - をつけます。
【例】67 → sixty-seven
十桁が0の場合は十桁を記載しません。
【例】7 → seven
一桁が0の場合も一桁は記載しません。
【例】60 → sixty
つまり、40はfortyでありforty-zeroとは書かないし、 7はsevenでありをzeroty-sevenと書きません。
百の位が出てきた場合は、「百桁 hundred 下二桁」となります。 例えば123の場合は、1と23を分けて表記するため、
one hundred twenty-three
のようになります。
345の場合は
three hundred forty-five
205の場合は、十桁が省略されるので
two hundred five
560の場合は、一桁が省略されるので
five hundred sixty
800の場合は、十桁と一桁が省略されるので
eight hundred
これで0から999まで表現できました。
それ以上の数は、三桁に分けて特別な単位を付与します。 例えば1234567890の場合は、三桁区切りにすると次のようになります。
1,234,567,890
左のカンマから順に十億、百万、千に対応します。 英語ではそれぞれ次のように表現されます。
数値 | 英語 | 日本語 |
---|---|---|
1,000,000,000 | billion | 十億 |
1,000,000 | million | 百万 |
1,000 | thousand | 千 |
考え方としては、次のようになります。
1 billion, 234 million, 567 thousand, 890
つまり、
* (format t "~R" 1234567890) one billion two hundred thirty-four million five hundred sixty-seven thousand eight hundred ninety
注意点としては、三桁の場合と同じようにzeroは省略し、 記載が必要ない場合は単位も省略します。
例えば
1,000,000,000
は
one billion
であり、
one billion zero million zero thousand zero
ではありません。
それではCommon Lisp処理系の出力例を見てみます。
[sbclの実行例]
* (format t "~R" 1234567890) one billion two hundred thirty-four million five hundred sixty-seven thousand eight hundred ninety
[clispの実行例]
* (format t "~R" 1234567890) one billion, two hundred and thirty-four million, five hundred and sixty-seven thousand, eight hundred and ninety
上記2例では少しだけ表現が違っています。 sbclに対して、clispでは三桁区切りでカンマが挿入されています。 また、hundredの次にandが挿入されています。 この辺りはいろいろな流儀があるのでしょう。 好みでいいと思います。
今回は三桁区切りの表現方法を説明しました。 それではthousand, million, billionの次は何でしょうか。 これが次章の本題となります。