//taking number as parameter function convert_digit_to_words($no) { //creating array of word for each digit $words = array('0'=> 'Zero' ,'1'=> 'one' ,'2'=> 'two' ,'3' => 'three','4' => 'four','5' => 'five','6' => 'six','7' => 'seven','8' => 'eight','9' => 'nine','10' => 'ten','11' => 'eleven','12' => 'twelve','13' => 'thirteen','14' => 'fourteen','15' => 'fifteen','16' => 'sixteen','17' => 'seventeen','18' => 'eighteen','19' => 'nineteen','20' => 'twenty','30' => 'thirty','40' => 'forty','50' => 'fifty','60' => 'sixty','70' => 'seventy','80' => 'eighty','90' => 'ninty','100' => 'hundred','1000' => 'thousand','100000' => 'lac','10000000' => 'crore'); //$words = array('0'=> '0' ,'1'=> '1' ,'2'=> '2' ,'3' => '3','4' => '4','5' => '5','6' => '6','7' => '7','8' => '8','9' => '9','10' => '10','11' => '11','12' => '12','13' => '13','14' => '14','15' => '15','16' => '16','17' => '17','18' => '18','19' => '19','20' => '20','30' => '30','40' => '40','50' => '50','60' => '60','70' => '70','80' => '80','90' => '90','100' => '100','1000' => '1000','100000' => '100000','10000000' => '10000000'); //for decimal number taking decimal part $cash=(int)$no; //take number wihout decimal $decpart = $no - $cash; //get decimal part of number $decpart=sprintf("%01.2f",$decpart); //take only two digit after decimal $decpart1=substr($decpart,2,1); //take first digit after decimal $decpart2=substr($decpart,3,1); //take second digit after decimal $decimalstr=''; //if given no. is decimal than preparing string for decimal digit's word if($decpart>0) { $decimalstr.="point ".$numbers[$decpart1]." ".$numbers[$decpart2]; } if($no == 0) return ' '; else { $novalue=''; $highno=$no; $remainno=0; $value=100; $value1=1000; while($no>=100) { if(($value <= $no) &&($no < $value1)) { $novalue=$words["$value"]; $highno = (int)($no/$value); $remainno = $no % $value; break; } $value= $value1; $value1 = $value * 100; } if(array_key_exists("$highno",$words)) //check if $high value is in $words array return $words["$highno"]." ".$novalue." ".convert_digit_to_words($remainno).$decimalstr; //recursion else { $unit=$highno%10; $ten =(int)($highno/10)*10; return $words["$ten"]." ".$words["$unit"]." ".$novalue." ".convert_digit_to_words($remainno ).$decimalstr; //recursion } } }
One thought on “PHP Number to Words Rupee”
You must be logged in to post a comment.
Amazing code, there are people who trying this code, above in google ranking then your page…, but your code runs perfect…, Thanx a lot