CoderZone.org

Category: >> PHP Code >> Convert Dollars And Cents Value to Words Bookmark and Share

<< lastnext >>

Snippet Name: Convert Dollars And Cents Value to Words

Description: This function converts a dollar amount into English words, i.e. "Twenty three dollars and forty nine cents".

Also see:
» Easy Password Encryption and Decry...
» Convert Minutes to Days, Hours, an...
» Word-Unwrap Function
» Resize and convert an image to a P...
» Convert text to image in php
» Smart Word Wrap Function
» Convert RGB to Hex with ASP
» Convert a String to Title Case in ...
» Create an array from words in an H...
» Count all words in a string
» Regexp: Find and highlight repeate...
» Convert Extensions To Lowercase
» Tabs-To-Space Converter
» Convert Unix time string to a date...
» Capitalize The First Word In A Sen...
» Find Percentage Function
» LDAP Timestamp Converter
» Reserved Words In Javascript
» Convert entities into normal chara...
» Convert Seconds to Hours:Minutes:S...
» Neatly trim a string to a set numb...
» Convert UK Dates To mySQL Format D...
» Convert miles to feet, feet to mil...
» Search All Words Of A String In my...
» RMAN: List the most recent Level 0...
» Converting Rows to Columns
» USER password expiration
» USER password
» Count words or terms

Comment: (none)

Author: CoderZone
Language: PHP
Highlight Mode: PHP
Last Modified: December 02nd, 2010

<?php
 
//********************************************************
// this function converts an amount into alpha words
// and adds the words dollars and cents.  Pass it a float.
// works up to 999,999,999.99 dollars .
//********************************************************
 
function makewords($numval){
$moneystr = "";
// handle the millions
$milval = (integer)($numval / 1000000);
if($milval > 0)  {
  $moneystr = getwords($milval) . " Million";
  }
 
// handle the thousands
$workval = $numval - ($milval * 1000000); // get rid of millions
$thouval = (integer)($workval / 1000);
if($thouval > 0)  {
  $workword = getwords($thouval);
  if ($moneystr == "")    {
    $moneystr = $workword . " Thousand";
    }else{
    $moneystr .= " " . $workword . " Thousand";
    }
  }
 
// handle all the rest of the dollars
$workval = $workval - ($thouval * 1000); // get rid of thousands
$tensval = (integer)($workval);
if ($moneystr == ""){
  if ($tensval > 0){
    $moneystr = getwords($tensval);
    }else{
    $moneystr = "Zero";
    }
  }else // non zero values in hundreds and up
  {
  $workword = getwords($tensval);
  $moneystr .= " " . $workword;
  }
 
// plural or singular 'dollar'
$workval = (integer)($numval);
if ($workval == 1){
  $moneystr .= " Dollar And ";
  }else{
  $moneystr .= " Dollars And ";
  }
 
// do the cents - use printf so that we get the
// same rounding as printf
$workstr = sprintf("%3.2f",$numval); // convert to a string
$intstr = substr($workstr,strlen - 2, 2);
$workint = (integer)($intstr);
if ($workint == 0){
  $moneystr .= "Zero";
  }else{
  $moneystr .= getwords($workint);
  }
if ($workint == 1){
  $moneystr .= " Cent";
  }else{
  $moneystr .= " Cents";
  }
 
// done 
return $moneystr;
}
 
//*************************************************************
// this function creates word phrases in the range of 1 to 999.
// pass it an integer value
//*************************************************************
function getwords($workval)
{
$numwords = array(
  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 => "Ninety");
 
// handle the 100's
$retstr = "";
$hundval = (integer)($workval / 100);
if ($hundval > 0){
  $retstr = $numwords[$hundval] . " Hundred";
  }
 
// handle units and teens
$workstr = "";
$tensval = $workval - ($hundval * 100); // dump the 100's
 
// do the teens
if (($tensval < 20) && ($tensval > 0)){
  $workstr = $numwords[$tensval];
   // got to break out the units and tens
  }else{
  $tempval = ((integer)($tensval / 10)) * 10; // dump the units
  $workstr = $numwords[$tempval]; // get the tens
  $unitval = $tensval - $tempval; // get the unit value
  if ($unitval > 0){
    $workstr .= " " . $numwords[$unitval];
    }
  }
 
// join the parts together 
if ($workstr != ""){
  if ($retstr != "")
    $retstr .= " " . $workstr;
    }else{
    $retstr = $workstr;
    }
  }
return $retstr;
}
 
$floatval = 42341.55;
$myresult = makewords($floatval);
echo "$myresult<br>";
printf("The value is %0.2f<br>",$floatval);
 
$floatval = 0.63;
$myresult = makewords($floatval);
echo "<br>$myresult<br>";
printf("The value is %0.2f<br>",$floatval);
 
$floatval = 1.00;
$myresult = makewords($floatval);
echo "<br>$myresult<br>";
printf("The value is %0.2f<br>",$floatval);
 
$floatval = 0.01;
$myresult = makewords($floatval);
echo "<br>$myresult<br>";
printf("The value is %0.2f<br>",$floatval);
 
$floatval = 76842341.55;
$myresult = makewords($floatval);
echo "<br>$myresult<br>";
printf("The value is %0.2f<br>",$floatval);
 
$floatval = 0.00;
$myresult = makewords($floatval);
echo "<br>$myresult<br>";
printf("The value is %0.2f<br>",$floatval);
 
$floatval = 11.04;
$myresult = makewords($floatval);
echo "<br>$myresult<br>";
printf("The value is %0.2f<br>",$floatval);
 
$floatval = 456.78;
$myresult = makewords($floatval);
echo "<br>$myresult<br>";
printf("The value is %0.2f<br>",$floatval);
 
$floatval = 76.97;
$myresult = makewords($floatval);
echo "<br>$myresult<br>";
printf("The value is %0.2f<br>",$floatval);
 
$floatval = 777777777.77;
$myresult = makewords($floatval);
echo "<br>$myresult<br>";
printf("The value is %0.2f<br>",$floatval);
 
?>
 
 
 
 
There haven't been any comments added for this snippet yet. You may add one if you like.  Add a comment 
© coderzone.org | users online: 11