phpretard Posted June 3, 2009 Share Posted June 3, 2009 How Can I convert numbers to text? $Number="$395.00"; $NumbersToText="Three Hundred Ninty Five Dollars and .00"; << How the heck? print $NumbersToText; Any help today? Quote Link to comment https://forums.phpfreaks.com/topic/160775-solved-numbers-to-text/ Share on other sites More sharing options...
MadTechie Posted June 3, 2009 Share Posted June 3, 2009 $Number="\$395.00"; Quote Link to comment https://forums.phpfreaks.com/topic/160775-solved-numbers-to-text/#findComment-848502 Share on other sites More sharing options...
phpretard Posted June 3, 2009 Author Share Posted June 3, 2009 Look what I found: <? function convertNumber($num) { list($num, $dec) = explode(".", $num); $output = ""; if($num{0} == "-") { $output = "negative "; $num = ltrim($num, "-"); } else if($num{0} == "+") { $output = "positive "; $num = ltrim($num, "+"); } if($num{0} == "0") { $output .= "zero"; } else { $num = str_pad($num, 36, "0", STR_PAD_LEFT); $group = rtrim(chunk_split($num, 3, " "), " "); $groups = explode(" ", $group); $groups2 = array(); foreach($groups as $g) $groups2[] = convertThreeDigit($g{0}, $g{1}, $g{2}); for($z = 0; $z < count($groups2); $z++) { if($groups2[$z] != "") { $output .= $groups2[$z].convertGroup(11 - $z).($z < 11 && !array_search('', array_slice($groups2, $z + 1, -1)) && $groups2[11] != '' && $groups[11]{0} == '0' ? " and " : ", "); } } $output = rtrim($output, ", "); } if($dec > 0) { $output .= " point"; for($i = 0; $i < strlen($dec); $i++) $output .= " ".convertDigit($dec{$i}); } return $output; } function convertGroup($index) { switch($index) { case 11: return " decillion"; case 10: return " nonillion"; case 9: return " octillion"; case 8: return " septillion"; case 7: return " sextillion"; case 6: return " quintrillion"; case 5: return " quadrillion"; case 4: return " trillion"; case 3: return " billion"; case 2: return " million"; case 1: return " thousand"; case 0: return ""; } } function convertThreeDigit($dig1, $dig2, $dig3) { $output = ""; if($dig1 == "0" && $dig2 == "0" && $dig3 == "0") return ""; if($dig1 != "0") { $output .= convertDigit($dig1)." hundred"; if($dig2 != "0" || $dig3 != "0") $output .= " and "; } if($dig2 != "0") $output .= convertTwoDigit($dig2, $dig3); else if($dig3 != "0") $output .= convertDigit($dig3); return $output; } function convertTwoDigit($dig1, $dig2) { if($dig2 == "0") { switch($dig1) { case "1": return "ten"; case "2": return "twenty"; case "3": return "thirty"; case "4": return "forty"; case "5": return "fifty"; case "6": return "sixty"; case "7": return "seventy"; case "8": return "eighty"; case "9": return "ninety"; } } else if($dig1 == "1") { switch($dig2) { case "1": return "eleven"; case "2": return "twelve"; case "3": return "thirteen"; case "4": return "fourteen"; case "5": return "fifteen"; case "6": return "sixteen"; case "7": return "seventeen"; case "8": return "eighteen"; case "9": return "nineteen"; } } else { $temp = convertDigit($dig2); switch($dig1) { case "2": return "twenty-$temp"; case "3": return "thirty-$temp"; case "4": return "forty-$temp"; case "5": return "fifty-$temp"; case "6": return "sixty-$temp"; case "7": return "seventy-$temp"; case "8": return "eighty-$temp"; case "9": return "ninety-$temp"; } } } function convertDigit($digit) { switch($digit) { case "0": return "zero"; case "1": return "one"; case "2": return "two"; case "3": return "three"; case "4": return "four"; case "5": return "five"; case "6": return "six"; case "7": return "seven"; case "8": return "eight"; case "9": return "nine"; } } ?> $Spell=convertNumber("395.00"); echo $Spell; Quote Link to comment https://forums.phpfreaks.com/topic/160775-solved-numbers-to-text/#findComment-848503 Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.