# script_name: numbers_to_chinese # usage: perl number2_to_chinese.pl 30806 # result: 三万零八百零六 my %cn_numbers=( 1=>"一", 2=>"二", 3=>"三", 4=>"四", 5=>"五", 6=>"六", 7=>"七", 8=>"八", 9=>"九", ); my $number=shift; my $cn_number; if ($number>=10000){ my $n=$number/10000; $n=~s/\..*//; $cn_number=$cn_numbers{$n}."万"; $number=$number % 10000; } if ($number>=1000){ my $n=$number/1000; $n=~s/\..*//; $cn_number.=$cn_numbers{$n}."千"; $number=$number % 1000; } if ($number>=100){ my $n=$number/100; $n=~s/\..*//; $cn_number.=$cn_numbers{$n}."百"; $number=$number % 100; } if ($number>=10){ my $n=$number/10; $n=~s/\..*//; $cn_number.=$cn_numbers{$n}."十"; $number=$number % 10; } if ($number>0){ $cn_number.=$cn_numbers{$number}; } #补零 if ($cn_number=~/万/ && $cn_number!~/千/){ $cn_number=~s/万/万零/; } if ($cn_number=~/千/ && $cn_number!~/百/){ $cn_number=~s/千/千零/; } if ($cn_number=~/百/ && $cn_number!~/十/){ $cn_number=~s/百/百零/; } $cn_number=~s/一十/十/g; print "$cn_number\n";
In reply to english numbers to chinese numbers by changlehu
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |