Here is a way to convert numbers to words (upto one lakh). It can be extended as per your requirement as well. This is useful for billing etc. Note that only one parameter should be input, and not both. The second parameter is used only for some internal recursive calling.
<?php
function ConvertToWords($n, $followup='')
{
if($n==0)
{
if($followup=='no')
{
return "";
exit();
}
else
{
return "zero";
exit();
}
}
switch($n)
{
case 1: return "one"; break;
case 2: return "two"; break;
case 3: return "three"; break;
case 4: return "four"; break;
case 5: return "five"; break;
case 6: return "six"; break;
case 7: return "seven"; break;
case 8: return "eight"; break;
case 9: return "nine"; break;
case 10: return "ten"; break;
case 11: return "eleven"; break;
case 12: return "twelve"; break;
case 13: return "thirteen"; break;
case 14: return "fourteen"; break;
case 15: return "fifteen"; break;
case 16: return "sixteen"; break;
case 17: return "seventeen"; break;
case 18: return "eighteen"; break;
case 19: return "nineteen"; break;
case 20: return "twenty"; break;
case 30: return "thirty"; break;
case 40: return "forty"; break;
case 50: return "fifty"; break;
case 60: return "sixty"; break;
case 70: return "seventy"; break;
case 80: return "eighty"; break;
case 90: return "ninety"; break;
case 100: return "one hundred"; break;
case 1000: return "one thousand"; break;
case 100000: return "one lakh"; break;
default:
{
if($n<100)
{
return ConvertToWords(floor($n/10)*10, 'no')."-".ConvertToWords($n%10, 'no'); break;
}
elseif($n<1000)
{
return ConvertToWords(floor($n/100), 'no')." hundred ".ConvertToWords($n%100, 'no'); break;
}
elseif($n<100000)
{
return ConvertToWords(floor($n/1000), 'no')." thousand ".ConvertToWords($n%1000, 'no'); break;
}
elseif($n<10000000)
{
return ConvertToWords(floor($n/100000), 'no')." lakh ".ConvertToWords($n%100000, 'no'); break;
}
else
{
return "Something else"; break;
}
}
}
}
?>
No comments:
Post a Comment