« A review of a week and a trip to Brugge | Main | Trying things in Python »
June 17, 2007
Outputting numbers as words - MySQL with Perl or PHP
Oracle's in_char function lets you convert numbers into a text string, but it's an unusual facility to have as as built-in; there's no such facility (as far as I know) in MySQL but you can get around this easily enough within your controlling application - the Nums2Words module on the CPAN (in Perl), and a similar module on the PEAR (for PHP users) does all the hard work for you.
Here's a Perl example:
use Nums2Words;
@testvals = (7, 12, 153, -19, 1234007, 0.7,
3.1415, 666.62, -176.75, 10.6e15);
foreach $number(@testvals) {
$t1 = ucfirst(lc(num2word($number)));
print "$number = $t1\n";
}
When you run that, you get
earth-wind-and-fire:~/jun07 grahamellis$ perl n2w
7 = Seven
12 = Twelve
153 = One hundred fifty-three
-19 = Negative nineteen
1234007 = One million, two hundred thirty-four thousand, seven
0.7 = Zero and seven tenths
3.1415 = Three and one thousand, four hundred fifteen ten-thousandths
666.62 = Six hundred sixty-six and sixty-two hundredths
-176.75 = Negative one hundred seventy-six and seventy-five hundredths
1.06e+16 = One and six thousand, sixteen millionths
earth-wind-and-fire:~/jun07 grahamellis$
A web search lead me to similar code in Java, and no doubt there's someting in the Cheeseshop if you're a Python programmer. Lesson to be learnt - look around before you re-write code!
Posted by gje at June 17, 2007 07:25 AM