Lingua::JA::Numbersモジュール

Encode.pmのメンテナDan Kogai氏による、日本語数字とアラビア数字の相互変換を行うPerlモジュールです。

サンプル
                                                                                                                      • -
#!/usr/bin/perl -w use strict; use utf8; binmode STDOUT, ":encoding(cp932)"; binmode STDERR, ":encoding(cp932)"; use Lingua::JA::Numbers ':all'; my $n = "9876543210"; print "$n -> ", num2ja($n), "\n"; $n = "1234567890"; print "$n -> ", num2ja($n, {style=>'daiji'}), "\n"; $n = "54321"; print "$n -> ", num2ja($n, {style=>'hiragana'}), "\n"; $n = "12345"; print "$n -> ", num2ja($n, {style=>'romaji'}), "\n"; $n = "1"."0"x68; print "$n -> ", num2ja($n), "\n"; $n = "6.02e23"; print "$n -> ", num2ja($n), "\n"; $n = "四十三万七千九百六十五"; print "$n -> ", ja2num($n), "\n"; $n = "ハッセンろっぴゃくnijuugo"; print "$n -> ", ja2num($n), "\n"; $n = "三十点五"; print "$n -> ", ja2num($n), "\n";
実行結果
                                                                                                                      • -
9876543210 -> 九十八億七千六百五十四万三千二百十 1234567890 -> 拾弐億参阡四佰伍拾六万七阡八佰九拾 54321 -> ごまんよんせんさんびゃくにじゅういち 12345 -> IchiManNiSenSanbyakuYonJuuGo 100000000000000000000000000000000000000000000000000000000000000000000 -> 一無量大数 6.02e23 -> 六点〇二掛ける十の二十三乗 四十三万七千九百六十五 -> 437965 ハッセンろっぴゃくnijuugo -> 8625 三十点五 -> 30.5

こりゃおもしろい。漢数字変換や数字に読みを振るのは面倒なので役に立ちそう。

Lingua-JA-Numbers(CPAN)