如何使用PHP将十进制数转换为单词(货币格式)


How to convert decimal number to words (money format) using PHP?

我只是需要一点帮助。因为我正在创建一个代码,用于将小数转换为单词中的货币格式。例如,如果

我有这个号码

'

2143.45'

输出应为

"两千一百四十三分四十五分">

我找到了这样的代码,但我不知道如何包含美分。

<?php
function convertNumber($number)
{
    list($integer, $fraction) = explode(".", (string) $number);
    $output = "";
    if ($integer{0} == "-")
    {
        $output = "negative ";
        $integer    = ltrim($integer, "-");
    }
    else if ($integer{0} == "+")
    {
        $output = "positive ";
        $integer    = ltrim($integer, "+");
    }
    if ($integer{0} == "0")
    {
        $output .= "zero";
    }
    else
    {
        $integer = str_pad($integer, 36, "0", STR_PAD_LEFT);
        $group   = rtrim(chunk_split($integer, 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 ($fraction > 0)
    {
        $output .= " point";
        for ($i = 0; $i < strlen($fraction); $i++)
        {
            $output .= " " . convertDigit($fraction{$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($digit1, $digit2, $digit3)
{
    $buffer = "";
    if ($digit1 == "0" && $digit2 == "0" && $digit3 == "0")
    {
        return "";
    }
    if ($digit1 != "0")
    {
        $buffer .= convertDigit($digit1) . " hundred";
        if ($digit2 != "0" || $digit3 != "0")
        {
            $buffer .= " and ";
        }
    }
    if ($digit2 != "0")
    {
        $buffer .= convertTwoDigit($digit2, $digit3);
    }
    else if ($digit3 != "0")
    {
        $buffer .= convertDigit($digit3);
    }
    return $buffer;
}
function convertTwoDigit($digit1, $digit2)
{
    if ($digit2 == "0")
    {
        switch ($digit1)
        {
            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 ($digit1 == "1")
    {
        switch ($digit2)
        {
            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($digit2);
        switch ($digit1)
        {
            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";
    }
}
 $num = 500254.89;
 $test = convertNumber($num);
 echo $test;
?>

有一个PEAR库可以做到这一点。

编辑

或者,您可以在代码末尾执行此操作

echo $test . ' cents';

印度版

function convert_number_to_words($number) {
    $hyphen      = '-';
    $conjunction = ' and ';
    $separator   = ', ';
    $negative    = 'negative ';
    $decimal     = ' point ';
    $dictionary  = 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                  => 'fourty',
        50                  => 'fifty',
        60                  => 'sixty',
        70                  => 'seventy',
        80                  => 'eighty',
        90                  => 'ninety',
        100                 => 'hundred',
        1000                => 'thousand',
        100000             => 'lakh',
        10000000          => 'crore'
    );
    if (!is_numeric($number)) {
        return false;
    }
    if (($number >= 0 && (int) $number < 0) || (int) $number < 0 - PHP_INT_MAX) {
        // overflow
        trigger_error(
            'convert_number_to_words only accepts numbers between -' . PHP_INT_MAX . ' and ' . PHP_INT_MAX,
            E_USER_WARNING
        );
        return false;
    }
    if ($number < 0) {
        return $negative . $this->convert_number_to_words(abs($number));
    }
    $string = $fraction = null;
    if (strpos($number, '.') !== false) {
        list($number, $fraction) = explode('.', $number);
    }
    switch (true) {
        case $number < 21:
            $string = $dictionary[$number];
            break;
        case $number < 100:
            $tens   = ((int) ($number / 10)) * 10;
            $units  = $number % 10;
            $string = $dictionary[$tens];
            if ($units) {
                $string .= $hyphen . $dictionary[$units];
            }
            break;
        case $number < 1000:
            $hundreds  = $number / 100;
            $remainder = $number % 100;
            $string = $dictionary[$hundreds] . ' ' . $dictionary[100];
            if ($remainder) {
                $string .= $conjunction . $this->convert_number_to_words($remainder);
            }
            break;
        case $number < 100000:
            $thousands   = ((int) ($number / 1000));
            $remainder = $number % 1000;
            $thousands = $this->convert_number_to_words($thousands);
            $string .= $thousands . ' ' . $dictionary[1000];
            if ($remainder) {
                $string .= $separator . $this->convert_number_to_words($remainder);
            }
            break;
        case $number < 10000000:
            $lakhs   = ((int) ($number / 100000));
            $remainder = $number % 100000;
            $lakhs = $this->convert_number_to_words($lakhs);
            $string = $lakhs . ' ' . $dictionary[100000];
            if ($remainder) {
                $string .= $separator . $this->convert_number_to_words($remainder);
            }
            break;
        case $number < 1000000000:
            $crores   = ((int) ($number / 10000000));
            $remainder = $number % 10000000;
            $crores = $this->convert_number_to_words($crores);
            $string = $crores . ' ' . $dictionary[10000000];
            if ($remainder) {
                $string .= $separator . $this->convert_number_to_words($remainder);
            }
            break;
        default:
            $baseUnit = pow(1000, floor(log($number, 1000)));
            $numBaseUnits = (int) ($number / $baseUnit);
            $remainder = $number % $baseUnit;
            $string = $this->convert_number_to_words($numBaseUnits) . ' ' . $dictionary[$baseUnit];
            if ($remainder) {
                $string .= $remainder < 100 ? $conjunction : $separator;
                $string .= $this->convert_number_to_words($remainder);
            }
            break;
    }
    if (null !== $fraction && is_numeric($fraction)) {
        $string .= $decimal;
        $words = array();
        foreach (str_split((string) $fraction) as $number) {
            $words[] = $dictionary[$number];
        }
        $string .= implode(' ', $words);
    }
    return $string;
}
<?php function numtowords($num){ 
$decones = array( 
            '01' => "One", 
            '02' => "Two", 
            '03' => "Three", 
            '04' => "Four", 
            '05' => "Five", 
            '06' => "Six", 
            '07' => "Seven", 
            '08' => "Eight", 
            '09' => "Nine", 
            10 => "Ten", 
            11 => "Eleven", 
            12 => "Twelve", 
            13 => "Thirteen", 
            14 => "Fourteen", 
            15 => "Fifteen", 
            16 => "Sixteen", 
            17 => "Seventeen", 
            18 => "Eighteen", 
            19 => "Nineteen" 
            );
$ones = array( 
            0 => " ",
            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" 
            ); 
$tens = array( 
            0 => "",
            2 => "Twenty", 
            3 => "Thirty", 
            4 => "Forty", 
            5 => "Fifty", 
            6 => "Sixty", 
            7 => "Seventy", 
            8 => "Eighty", 
            9 => "Ninety" 
            ); 
$hundreds = array( 
            "Hundred", 
            "Thousand", 
            "Million", 
            "Billion", 
            "Trillion", 
            "Quadrillion" 
            ); //limit t quadrillion 
$num = number_format($num,2,".",","); 
$num_arr = explode(".",$num); 
$wholenum = $num_arr[0]; 
$decnum = $num_arr[1]; 
$whole_arr = array_reverse(explode(",",$wholenum)); 
krsort($whole_arr); 
$rettxt = ""; 
foreach($whole_arr as $key => $i){ 
    if($i < 20){ 
        $rettxt .= $ones[$i]; 
    }
    elseif($i < 100){ 
        $rettxt .= $tens[substr($i,0,1)]; 
        $rettxt .= " ".$ones[substr($i,1,1)]; 
    }
    else{ 
        $rettxt .= $ones[substr($i,0,1)]." ".$hundreds[0]; 
        $rettxt .= " ".$tens[substr($i,1,1)]; 
        $rettxt .= " ".$ones[substr($i,2,1)]; 
    } 
    if($key > 0){ 
        $rettxt .= " ".$hundreds[$key]." "; 
    } 
} 
$rettxt = $rettxt." peso/s";
if($decnum > 0){ 
    $rettxt .= " and "; 
    if($decnum < 20){ 
        $rettxt .= $decones[$decnum]; 
    }
    elseif($decnum < 100){ 
        $rettxt .= $tens[substr($decnum,0,1)]; 
        $rettxt .= " ".$ones[substr($decnum,1,1)]; 
    }
    $rettxt = $rettxt." centavo/s"; 
} 
return $rettxt;} ?>

您可以通过以下方式使用它

echo numtowords(156.50);

输出为

One Hundred Fifty Six peso/s and Fifty centavo/s only.

归功于所有者:亚历克斯·库兰戈PS:我已经编辑了一些行,因为当十个有"0"时它会有一些错误,并且还可以正确十进制转换为单词以及比索和分的位置。

我不知道美分,但我为印度卢比创建了代码。

<?php
echo getIndianCurrency(2851.05);

function getIndianCurrency(float $number)
{
    $decimal = round($number - ($no = floor($number)), 2) * 100;
    $decimal_part = $decimal;
    $hundred = null;
    $hundreds = null;
    $digits_length = strlen($no);
    $decimal_length = strlen($decimal);
    $i = 0;
    $str = array();
    $str2 = array();
    $words = array(0 => '', 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');
    $digits = array('', 'hundred','thousand','lakh', 'crore');
    while( $i < $digits_length ) {
        $divider = ($i == 2) ? 10 : 100;
        $number = floor($no % $divider);
        $no = floor($no / $divider);
        $i += $divider == 10 ? 1 : 2;
        if ($number) {
            $plural = (($counter = count($str)) && $number > 9) ? 's' : null;
            $hundred = ($counter == 1 && $str[0]) ? ' and ' : null;
            $str [] = ($number < 21) ? $words[$number].' '. $digits[$counter]. $plural.' '.$hundred:$words[floor($number / 10) * 10].' '.$words[$number % 10]. ' '.$digits[$counter].$plural.' '.$hundred;
        } else $str[] = null;
    }
    $d = 0;
    while( $d < $decimal_length ) {
        $divider = ($d == 2) ? 10 : 100;
        $decimal_number = floor($decimal % $divider);
        $decimal = floor($decimal / $divider);
        $d += $divider == 10 ? 1 : 2;
        if ($decimal_number) {
            $plurals = (($counter = count($str2)) && $decimal_number > 9) ? 's' : null;
            $hundreds = ($counter == 1 && $str2[0]) ? ' and ' : null;
            @$str2 [] = ($decimal_number < 21) ? $words[$decimal_number].' '. $digits[$decimal_number]. $plural.' '.$hundred:$words[floor($decimal_number / 10) * 10].' '.$words[$decimal_number % 10]. ' '.$digits[$counter].$plural.' '.$hundred;
        } else $str2[] = null;
    }
    $Rupees = implode('', array_reverse($str));
    $paise = implode('', array_reverse($str2));
    $paise = ($decimal_part > 0) ? $paise . ' Paise' : '';
    return ($Rupees ? $Rupees . 'Rupees ' : '') . $paise;
}
?>

输出:

二千八百五十一卢比五派斯

我将在 guptatreepoint.com 上写一篇关于其代码描述的文章

如果您不想编辑该功能,可以执行此操作的一种快速而肮脏的方法是破解打印单词的部分,如下所示: http://pastebin.com/UwSR8NpV 它应该像您想要的那样工作。

您使用的功能很好。

2143.45

我认为输出应该是:

two thousand one hundred forty three and four five cents

而不是 :

two thousand one hundred forty three and forty five cents

但是如果你喜欢这样,你仍然可以使用你正在使用的功能。
绝对是实现它的更长的方法!!:

$testNumber = '2143.45';
$tempNum = explode( '.' , $testNumber );
$convertedNumber = ( isset( $tempNum[0] ) ? convertNumber( $tempNum[0] ) : '' );
//  Use the below line if you don't want 'and' in the number before decimal point
$convertedNumber = str_replace( ' and ' ,' ' ,$convertedNumber );
//  In the below line if you want you can replace ' and ' with ' , '
$convertedNumber .= ( ( isset( $tempNum[0] ) and isset( $tempNum[1] ) )  ? ' and ' : '' );
$convertedNumber .= ( isset( $tempNum[1] ) ? convertNumber( $tempNum[1] ) .' cents' : '' );
echo $convertedNumber;

显示:

两千四十三分和四十五美分

您还可以将上述代码行合并到converNumber函数中,它将派系部分if ($fraction > 0){ }

For Indian Currnecy 
For Indian Currency
<html>
<head>
<title> Number to word converter</title>
</head>
<body>
<?php
$ones =array('',' One',' Two',' Three',' Four',' Five',' Six',' Seven',' Eight',' Nine',' Ten',' Eleven',' Twelve',' Thirteen',' Fourteen',' Fifteen',' Sixteen',' Seventeen',' Eighteen',' Nineteen');
$tens = array('','',' Twenty',' Thirty',' Fourty',' Fifty',' Sixty',' Seventy',' Eighty',' Ninety',);
$triplets = array('',' Thousand',' Lac',' Crore',' Arab',' Kharab');

function Show_Amount_In_Words($num) {
  global $ones, $tens, $triplets;
$str ="";

//$num =(int)$num;
$th= (int)($num/1000); 
$x = (int)($num/100) %10;
$fo= explode('.',$num);
if($fo[0] !=null){
$y=(int) substr($fo[0],-2);
}else{
    $y=0;
}
if($x > 0){
    $str =$ones[$x].' Hundred';
}
if($y>0){
if($y<20)
{
 $str .=$ones[$y];
}
else {
    $str .=$tens[($y/10)].$ones[($y%10)];
   }
}
$tri=1;
while($th!=0){
    $lk = $th%100;
    $th = (int)($th/100);
    $count =$tri;
    if($lk<20){
        if($lk == 0){
        $tri =0;}
        $str = $ones[$lk].$triplets[$tri].$str;
        $tri=$count;
        $tri++;
    }else{
        $str = $tens[$lk/10].$ones[$lk%10].$triplets[$tri].$str;
        $tri++;
    }
}
$num =(float)$num;
if(is_float($num)){
     $fo= (String) $num;
      $fo= explode('.',$fo);
       $fo1= @$fo[1];
}else{
    $fo1 =0;
}
$check = (int) $num;
 if($check !=0){
          return $str.' Rupees'.forDecimal($fo1);
    }else{
       return forDecimal($fo1);
    }
}//End function Show_Amount_In_Words
if(isset($_POST['num'])){
   $num = $_POST['num'];
 echo Show_Amount_In_Words($num);
 }

//function for decimal parts
 function forDecimal($num){
    global $ones,$tens;
    $str="";
    $len = strlen($num);
    if($len==1){
        $num=$num*10;
    }
    $x= $num%100;
    if($x>0){
    if($x<20){
        $str = $ones[$x].' Paise';
    }else{
        $str = $tens[$x/10].$ones[$x%10].' Paise';
    }
    }
     return $str;
 }  
?>
<form action='#' method='post'>
<input type='text' name='num' size='20'>
<input type='submit' name='submit' />
</form>
</body>
</html>
<?php
$price = mysqli_real_escape_string($conn, $_GET['price']);
$adprice = mysqli_real_escape_string($conn, $_GET['adprice']);
$number = $price-$adprice;
$no = round($number);
$point = round($number - $no, 2) * 100;
$hundred = null;
$digits_1 = strlen($no);
$i = 0;
$str = array();
$words = array('0' => '', '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');
$digits = array('', 'Hundred', 'Thousand', 'Lakh', 'Crore');
while ($i < $digits_1) {
$divider = ($i == 2) ? 10 : 100;
$number = floor($no % $divider);
$no = floor($no / $divider);
$i += ($divider == 10) ? 1 : 2;
if ($number) {
    $plural = (($counter = count($str)) && $number > 9) ? 's' : null;
    $hundred = ($counter == 1 && $str[0]) ? ' and ' : null;
    $str [] = ($number < 21) ? $words[$number] .
                " " . $digits[$counter] . $plural . " " . $hundred
                :
                $words[floor($number / 10) * 10]
                . " " . $words[$number % 10] . " "
                . $digits[$counter] . $plural . " " . $hundred;
            } else $str[] = null;
              }
$str = array_reverse($str);
$result = implode('', $str);
$points = ($point) ?
          "." . $words[$point / 10] . " " . 
          $words[$point = $point % 10] : '';
          echo $result . "  " . $points . "Only ";
 ?> 
嗨,

我已经使用 php 解决了这个问题

请参阅以下链接 堆栈溢出 印度货币格式的最佳转换结果

我试图为十进制值添加一些东西。 希望它会有所帮助。

<?php
function convertNumber($number)
{
    list($integer,$fraction) = explode(".", (string) $number);
    $output = " ";
    if ($integer{0} == "-")
    {
        $output = "negative ";
        $integer    = ltrim($integer, "-");
    }
    else if ($integer{0} == "+")
    {
        $output = "positive ";
        $integer    = ltrim($integer, "+");
    }
    if ($integer{0} == "0")
    {
        $output .= "zero";
    }
    else
    {
        $integer = str_pad($integer, 36, "0", STR_PAD_LEFT);
        $group   = rtrim(chunk_split($integer, 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 ($fraction > 0)
    {
        $output .= " PESOS ";
        for ($i = 0; $i < strlen($fraction); $i++)
        {
           if($fraction==01){
               $i = 1;
                while ($i <2):
                     $output .= " and one centavo only";
                 $i++;
                endwhile;
           }
           else if($fraction==02){
               $i = 1;
                while ($i <2):
                     $output .= " and two centavos only";
                 $i++;
                endwhile;
           }
           else if($fraction==03){
               $i = 1;
                while ($i <2):
                     $output .= " and three centavos only";
                 $i++;
                endwhile;
           }
           else if($fraction==04){
               $i = 1;
                while ($i <2):
                         $output .= " and four centavos only";
                 $i++;
                endwhile;
           }
           else if($fraction==05){
               $i = 1;
                while ($i <2):
                         $output .= " and five centavos only";
                 $i++;
                endwhile;
           }
           else if($fraction==06){
               $i = 1;
                while ($i <2):
                         $output .= " and six centavos only";
                 $i++;
                endwhile;
           }
           else if($fraction==07){
              $i = 1;
                while ($i <2):
                         $output .= " point seven centavos only";
                 $i++;
                endwhile;
           }
            else if($fraction==8 || $fraction==08){
               $i = 1;
                while ($i <2):
                 $output .= " and eight centavos only";
                 $i++;
                endwhile;
           }
            else if($fraction==9 || $fraction==09){
               $i = 1;
                while ($i <2):
                 $output .= " and nine centavos only";
                 $i++;
                endwhile;
           }
            else if($fraction==10){
                  $i = 1;
                while ($i <2):
                  $output .= " and ten centavos only";
                 $i++;
                endwhile;
           }
           else if($fraction==11){
              $i = 1;
                while ($i <2):
                         $output .= " and eleven centavos only";
                 $i++;
                endwhile;
           }
             else if($fraction==12){
                 $i = 1;
                while ($i <2):
                     $output .= " and twelve centavos only";
                 $i++;
                endwhile;
           }
           else if($fraction==13){
             $i = 1;
                while ($i <2):
                         $output .= " and thirteen centavos only";
                 $i++;
                endwhile;
           }
            else if($fraction==14){
               $i = 1;
                while ($i <2):
                         $output .= " and fourteen centavos only";
                 $i++;
                endwhile;
           }
           else if($fraction==15){
               $i = 1;
                while ($i <2):
                         $output .= " and fifteen centavos only";
                 $i++;
                endwhile;
           }
           else if($fraction==16){
               $i = 1;
                while ($i <2):
                         $output .= " and sixteen centavos only";
                 $i++;
                endwhile;
           }
           else if($fraction==17){

               $i = 1;
                while ($i <2):
                     $output .= " and seventeen centavos only";
                 $i++;
                endwhile;
           }
           else if($fraction==18){

               $i = 1;
                while ($i <2):
                $output .= " and eighteen centavos only";
                 $i++;
                endwhile;
           }
           else if($fraction==19){
               $i = 1;
                while ($i <2):
                         $output .= " and nineteen centavos only";
                 $i++;
                endwhile;
           }
           else if($fraction==20){
               $i = 1;
                while ($i <2):
                     $output .= " and twenty centavos only";
                 $i++;
                endwhile;
           }
            else if($fraction==21){
               $i = 1;
                while ($i <2):
                  $output .= " and twenty one centavos only";
                 $i++;
                endwhile;
           }
            else if($fraction==22){
              $i = 1;
                while ($i <2):
                         $output .= " and twenty two centavos only";
                 $i++;
                endwhile;
           }
            else if($fraction==23){
                 $i = 1;
                while ($i <2):
                         $output .= " and twenty three centavos only";
                 $i++;
                endwhile;
           }
            else if($fraction==24){
                 $i = 1;
                while ($i <2):
                     $output .= " and twenty four centavos only";
                 $i++;
                endwhile;
           }
            else if($fraction==25){
             $i = 1;
                while ($i <2):
                 $output .= " and twenty five centavos only";
                 $i++;
                endwhile;
           }
            else if($fraction==26){
                $i = 1;
                while ($i <2):
                    $output .= " and twenty six centavos only";
                 $i++;
                endwhile;
           }
            else if($fraction==27){
                $i = 1;
                while ($i <2):
                 $output .= " and twenty seven centavos only";
                 $i++;
                endwhile;
           }
            else if($fraction==28){
                $i = 1;
                while ($i <2):
                    $output .= " and twenty eight centavos only";
                 $i++;
                endwhile;
           }
            else if($fraction==29){
                $i = 1;
                while ($i <2):
                     $output .= " and twenty nine centavos only";
                    $i++;
                endwhile;
           }
             else if($fraction ==30){
                $i = 1;
                while ($i <2):
                     $output .= " and thirty centavos only";
                    $i++;
                endwhile;
           }
           else if($fraction ==31){
                $i = 1;
                while ($i <2):
                     $output .= " and thirty one centavos only";
                    $i++;
                endwhile;
           }
            else if($fraction ==32){
                $i = 1;
                while ($i <2):
                     $output .= " and thirty two centavos only";
                    $i++;
                endwhile;
           }
           else if($fraction ==33){
                $i = 1;
                while ($i <2):
                     $output .= " and thirty three centavos only";
                    $i++;
                endwhile;
           }
            else if($fraction ==34){
                $i = 1;
                while ($i <2):
                     $output .= " and thirty four centavos only";
                    $i++;
                endwhile;
           }
           else if($fraction ==35){
                $i = 1;
                while ($i <2):
                     $output .= " and thirty five centavos only";
                    $i++;
                endwhile;
           }
             else if($fraction ==36){
                $i = 1;
                while ($i <2):
                     $output .= " and thirty six centavos only";
                    $i++;
                endwhile;
           }
            else if($fraction ==37){
                $i = 1;
                while ($i <2):
                     $output .= " and thirty seven centavos only";
                    $i++;
                endwhile;
           }
           else if($fraction ==38){
                $i = 1;
                while ($i <2):
                     $output .= " and thirty eight centavos only";
                    $i++;
                endwhile;
           }
           else if($fraction ==39){
                $i = 1;
                while ($i <2):
                     $output .= " and thirty nine centavos only";
                    $i++;
                endwhile;
           }
           else if($fraction ==40){
                $i = 1;
                while ($i <2):
                     $output .= " and fourty centavos only";
                    $i++;
                endwhile;
           }
           else if($fraction ==41){
                $i = 1;
                while ($i <2):
                     $output .= " and fourty one centavos only";
                    $i++;
                endwhile;
           }
           else if($fraction ==42){
                $i = 1;
                while ($i <2):
                     $output .= " and fourty two centavos only";
                    $i++;
                endwhile;
           }
           else if($fraction ==43){
                $i = 1;
                while ($i <2):
                     $output .= " and fourty three centavos only";
                    $i++;
                endwhile;
           }
           else if($fraction ==44){
                $i = 1;
                while ($i <2):
                     $output .= " and fourty four centavos only";
                    $i++;
                endwhile;
           }
           else if($fraction ==45){
                $i = 1;
                while ($i <2):
                     $output .= " and fourty five centavos only";
                    $i++;
                endwhile;
           }
           else if($fraction ==46){
                $i = 1;
                while ($i <2):
                     $output .= " and fourty six centavos only";
                    $i++;
                endwhile;
           }
           else if($fraction ==47){
                $i = 1;
                while ($i <2):
                     $output .= " and fourty seven centavos only";
                    $i++;
                endwhile;
           }
           else if($fraction ==48){
                $i = 1;
                while ($i <2):
                     $output .= " and fourty eight centavos only";
                    $i++;
                endwhile;
           }
           else if($fraction ==49){
                $i = 1;
                while ($i <2):
                     $output .= " and fourty nine centavos only";
                    $i++;
                endwhile;
           }
            else if($fraction ==50){
                $i = 1;
                while ($i <2):
                     $output .= " and fifty centavos only";
                    $i++;
                endwhile;
           }
           else if($fraction ==51){
                $i = 1;
                while ($i <2):
                     $output .= " and fifty one centavos only";
                    $i++;
                endwhile;
           }
           else if($fraction ==52){
                $i = 1;
                while ($i <2):
                     $output .= " and fifty two centavos only";
                    $i++;
                endwhile;
           }
           else if($fraction ==53){
                $i = 1;
                while ($i <2):
                     $output .= " and fifty three centavos only";
                    $i++;
                endwhile;
           }
           else if($fraction ==54){
                $i = 1;
                while ($i <2):
                     $output .= " and fifty four centavos only";
                    $i++;
                endwhile;
           }
           else if($fraction ==55){
                $i = 1;
                while ($i <2):
                     $output .= " and fifty five centavos only";
                    $i++;
                endwhile;
           }
           else if($fraction ==56){
                $i = 1;
                while ($i <2):
                     $output .= " and fifty six centavos only";
                    $i++;
                endwhile;
           }
           else if($fraction ==57){
                $i = 1;
                while ($i <2):
                     $output .= " and fifty seven centavos only";
                    $i++;
                endwhile;
           }
           else if($fraction ==58){
                $i = 1;
                while ($i <2):
                     $output .= " and fifty eight centavos only";
                    $i++;
                endwhile;
           }
           else if($fraction ==59){
                $i = 1;
                while ($i <2):
                     $output .= " and fifty nine centavos only";
                    $i++;
                endwhile;
           }
           else if($fraction ==60){
                $i = 1;
                while ($i <2):
                     $output .= " and sixty centavos only";
                    $i++;
                endwhile;
           }
          else if($fraction ==61){
                $i = 1;
                while ($i <2):
                     $output .= " and sixty one centavos only";
                    $i++;
                endwhile;
           }
           else if($fraction ==62){
                $i = 1;
                while ($i <2):
                     $output .= " and sixty two centavos only";
                    $i++;
                endwhile;
           }
           else if($fraction ==63){
                $i = 1;
                while ($i <2):
                     $output .= " and sixty three centavos only";
                    $i++;
                endwhile;
           }
           else if($fraction ==64){
                $i = 1;
                while ($i <2):
                     $output .= " and sixty four centavos only";
                    $i++;
                endwhile;
           }
          else if($fraction ==65){
                $i = 1;
                while ($i <2):
                     $output .= " and sixty five centavos only";
                    $i++;
                endwhile;
           }
         else if($fraction ==66){
                $i = 1;
                while ($i <2):
                     $output .= " and sixty six centavos only";
                    $i++;
                endwhile;
           }
         else if($fraction ==67){
                $i = 1;
                while ($i <2):
                     $output .= " and sixty seven centavos only";
                    $i++;
                endwhile;
           }
        else if($fraction ==68){
                $i = 1;
                while ($i <2):
                     $output .= " and sixty eight centavos only";
                    $i++;
                endwhile;
           }
        else if($fraction ==69){
                $i = 1;
                while ($i <2):
                     $output .= " and sixty nine centavos only";
                    $i++;
                endwhile;
           }
       else if($fraction ==70){
                $i = 1;
                while ($i <2):
                     $output .= " and seventy centavos only";
                    $i++;
                endwhile;
           }
     else if($fraction ==71){
                $i = 1;
                while ($i <2):
                     $output .= " and seventy one centavos only";
                    $i++;
                endwhile;
           }
     else if($fraction ==72){
                $i = 1;
                while ($i <2):
                     $output .= " and seventy two centavos only";
                    $i++;
                endwhile;
           }
    else if($fraction ==73){
                $i = 1;
                while ($i <2):
                     $output .= " and seventy three centavos only";
                    $i++;
                endwhile;
           }
     else if($fraction ==74){
                $i = 1;
                while ($i <2):
                     $output .= " and seventy four centavos only";
                    $i++;
                endwhile;
           }
            else if($fraction ==75){
                $i = 1;
                while ($i <2):
                     $output .= " and seventy five centavos only";
                    $i++;
                endwhile;
           }
            else if($fraction ==76){
                $i = 1;
                while ($i <2):
                     $output .= " and seventy six centavos only";
                    $i++;
                endwhile;
           }
           else if($fraction ==77){
                $i = 1;
                while ($i <2):
                     $output .= " and seventy seven centavos only";
                    $i++;
                endwhile;
           }
            else if($fraction ==78){
                $i = 1;
                while ($i <2):
                     $output .= " and seventy eight centavos only";
                    $i++;
                endwhile;
           }
            else if($fraction ==79){
                $i = 1;
                while ($i <2):
                     $output .= " and seventy nine centavos only";
                    $i++;
                endwhile;
           }
            else if($fraction ==80){
                $i = 1;
                while ($i <2):
                     $output .= " and eighty centavos only";
                    $i++;
                endwhile;
           }
         else if($fraction ==81){
                $i = 1;
                while ($i <2):
                     $output .= " and eighty one centavos only";
                    $i++;
                endwhile;
           }
        else if($fraction ==82){
                $i = 1;
                while ($i <2):
                     $output .= " and eighty two centavos only";
                    $i++;
                endwhile;
           }
       else if($fraction ==83){
                $i = 1;
                while ($i <2):
                     $output .= " and eighty three centavos only";
                    $i++;
                endwhile;
           }
      else if($fraction ==84){
                $i = 1;
                while ($i <2):
                     $output .= " and eighty four centavos only";
                    $i++;
                endwhile;
           }
        else if($fraction ==85){
                $i = 1;
                while ($i <2):
                     $output .= " and eighty five centavos only";
                    $i++;
                endwhile;
           }
         else if($fraction ==86){
                $i = 1;
                while ($i <2):
                     $output .= " and eighty six centavos only";
                    $i++;
                endwhile;
           }
           else if($fraction ==87){
                $i = 1;
                while ($i <2):
                     $output .= " and eighty seven centavos only";
                    $i++;
                endwhile;
           }
           else if($fraction ==88){
                $i = 1;
                while ($i <2):
                     $output .= " and eighty eight centavos only";
                    $i++;
                endwhile;
           }
           else if($fraction ==89){
                $i = 1;
                while ($i <2):
                     $output .= " and eighty nine centavos only";
                    $i++;
                endwhile;
           }
           else if($fraction ==90){
                $i = 1;
                while ($i <2):
                     $output .= " and ninety centavos only";
                    $i++;
                endwhile;
           }
           else if($fraction ==91){
                $i = 1;
                while ($i <2):
                     $output .= " and ninety one centavos only";
                    $i++;
                endwhile;
           }
           else if($fraction ==92){
                $i = 1;
                while ($i <2):
                     $output .= " and ninety two centavos only";
                    $i++;
                endwhile;
           }
           else if($fraction ==93){
                $i = 1;
                while ($i <2):
                     $output .= " and ninety three centavos only";
                    $i++;
                endwhile;
           }
           else if($fraction ==94){
                $i = 1;
                while ($i <2):
                     $output .= " and ninety four centavos only";
                    $i++;
                endwhile;
           }
           else if($fraction ==95){
                $i = 1;
                while ($i <2):
                     $output .= " and ninety five centavos only";
                    $i++;
                endwhile;
           }
           else if($fraction ==96){
                $i = 1;
                while ($i <2):
                     $output .= " and ninety six centavos only";
                    $i++;
                endwhile;
           }
           else if($fraction ==97){
                $i = 1;
                while ($i <2):
                     $output .= " and ninety seven centavos only";
                    $i++;
                endwhile;
           }
           else if($fraction ==98){
                $i = 1;
                while ($i <2):
                     $output .= " and ninety eight centavos only";
                    $i++;
                endwhile;
           }
           else if($fraction ==99){
                $i = 1;
                while ($i <2):
                     $output .= " and ninety nine centavos only";
                    $i++;
                endwhile;
           }
        }
    }
      else{
            $output .= " PESOS ONLY";
           }
    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($digit1, $digit2, $digit3)
{
    $buffer = " ";
    if ($digit1 == "0" && $digit2 == "0" && $digit3 == "0")
    {
        return "";
    }
    if ($digit1 != "0")
    {
        $buffer .= convertDigit($digit1) . " hundred";
        if ($digit2 != "0" || $digit3 != "0")
        {
            $buffer .= " ";
        }
    }
    if ($digit2 != "0")
    {
        $buffer .= convertTwoDigit($digit2, $digit3);
    }
    else if ($digit3 != "0")
    {
        $buffer .= convertDigit($digit3);
    }
    return $buffer;
}
function convertTwoDigit($digit1, $digit2)
{
    if ($digit2 == "0")
    {
        switch ($digit1)
        {
            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 ($digit1 == "1")
    {
        switch ($digit2)
        {
            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($digit2);
        switch ($digit1)
        {
            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";
    }
}
strtoupper(convertNumber(2143.45)
?>
// three hundred and thirteen rupees and seventy-six paise
echo getIndianCurrency(313.76);
function getIndianCurrency(float $number)
{
    $decimal = round($number - ($no = floor($number)), 2) * 100;
    $hundred = null;
    $digits_length = strlen($no);
    $i = 0;
    $str = array();
    $words = array(0 => '', 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');
    $digits = array('', 'hundred','thousand','lakh', 'crore');
    while( $i < $digits_length ) {
        $divider = ($i == 2) ? 10 : 100;
        $number = floor($no % $divider);
        $no = floor($no / $divider);
        $i += $divider == 10 ? 1 : 2;
        if ($number) {
            $plural = (($counter = count($str)) && $number > 9) ? 's' : null;
            $hundred = ($counter == 1 && $str[0]) ? ' and ' : null;
            $str [] = ($number < 21) ? $words[$number].' '. $digits[$counter]. $plural.' '.$hundred:$words[floor($number / 10) * 10].' '.$words[$number % 10]. ' '.$digits[$counter].$plural.' '.$hundred;
        } else $str[] = null;
    }
    $rupees = implode('', array_reverse($str));
    $paise = '';
    if ($decimal) {
        $paise = 'and ';
        $decimal_length = strlen($decimal);
        if ($decimal_length == 2) {
            if ($decimal >= 20) {
                $dc = $decimal % 10;
                $td = $decimal - $dc;
                $ps = ($dc == 0) ? '' : '-' . $words[$dc];
                $paise .= $words[$td] . $ps;
            } else {
                $paise .= $words[$decimal];
            }
        } else {
            $paise .= $words[$decimal % 10];
        }
        $paise .= ' paise';
    }
    return ($rupees ? $rupees . 'rupees ' : '') . $paise ;
}

使用:

echo getIndianCurrency(313.76);

输出:

three hundred and thirteen rupees and seventy-six paise

此代码有助于获取美元...

$word = numberTowords(100045.95);
echo $word;
exit();
function numberTowords($num)
{
    $ones = 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"
    );
    $tens = array( 
        0 => "ZERO",
        1 => "TEN",
        2 => "TWENTY",
        3 => "THIRTY", 
        4 => "FORTY", 
        5 => "FIFTY", 
        6 => "SIXTY", 
        7 => "SEVENTY", 
        8 => "EIGHTY", 
        9 => "NINETY" 
    ); 
    $hundreds = array( 
        "HUNDRED", 
        "THOUSAND", 
        "MILLION", 
        "BILLION", 
        "TRILLION", 
        "QUARDRILLION" 
    ); /*limit t quadrillion */
    $num = number_format($num,2,".",","); 
    $num_arr = explode(".",$num); 
    $wholenum = $num_arr[0]; 
    $decnum = $num_arr[1]; 
    $whole_arr = array_reverse(explode(",",$wholenum)); 
    krsort($whole_arr,1); 
    $rettxt = ""; 
    foreach($whole_arr as $key => $i){
      
        while(substr($i,0,1)=="0")
            $i=substr($i,1,5);
        if($i < 20){ 
            /* echo "getting:".$i; */
            $rettxt .= $ones[$i]; 
        }elseif($i < 100){ 
            if(substr($i,0,1)!="0")  $rettxt .= $tens[substr($i,0,1)]; 
            if(substr($i,1,1)!="0") $rettxt .= " ".$ones[substr($i,1,1)]; 
        } else{ 
             if(substr($i,0,1)!="0") $rettxt .= $ones[substr($i,0,1)]." ".$hundreds[0]; 
            if(substr($i,1,1)!="0")$rettxt .= " ".$tens[substr($i,1,1)]; 
            if(substr($i,2,1)!="0")$rettxt .= " ".$ones[substr($i,2,1)]; 
        } 
        if($key > 0){ 
            $rettxt .= " ".$hundreds[$key]." "; 
        }
    } 
    if($decnum > 0){
        $rettxt .= " AND ";
        if($decnum < 20) {
            $rettxt .= $ones[$decnum]." FILS";
        } elseif($decnum < 100) {
            $rettxt .= $tens[substr($decnum,0,1)];
            $rettxt .= " ".$ones[substr($decnum,1,1)]. " FILS";
        }
    }
    return $rettxt;
}

输出为:十万四十五和九十五菲尔

对于美元转换,

  public static function getWords($number = false)
{
    $hyphen = ' ';
    $conjunction = ' ';
    $separator = ', ';
    $negative = 'negative ';
    $decimal = ' And ';
    $dictionary = 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 => 'fourty',
        50 => 'fifty',
        60 => 'sixty',
        70 => 'seventy',
        80 => 'eighty',
        90 => 'ninety',
        100 => 'hundred',
        1000 => 'thousand',
        1000000 => 'million',
        1000000000 => 'billion',
        1000000000000 => 'trillion',
        1000000000000000 => 'quadrillion',
        1000000000000000000 => 'quintillion'
    );
    if (!is_numeric($number)) {
        return false;
    }
    if (($number >= 0 && (int) $number < 0) || (int) $number < 0 - PHP_INT_MAX) {
        // overflow
        trigger_error(
            'convert_number_to_words only accepts numbers between -' . PHP_INT_MAX . ' and ' . PHP_INT_MAX,
            E_USER_WARNING
        );
        return false;
    }
    if ($number < 0) {
        return $negative . PoMaster::getWords(abs($number));
    }
    $string = $fraction = null;

    if (strpos($number, '.') !== false) {
        list($number, $fraction) = explode('.', $number);
    }
    switch (true) {
        case $number < 21:
            $string .= $dictionary[$number];
            break;
        case $number < 100:
            $tens = ((int) ($number / 10)) * 10;
            $units = $number % 10;
            $string .= $dictionary[$tens];
            if ($units) {
                $string .= $hyphen . $dictionary[$units];
            }
            break;
        case $number < 1000:
            $hundreds = $number / 100;
            $remainder = $number % 100;
            $string .= $dictionary[$hundreds] . ' ' . $dictionary[100];
            if ($remainder) {
                $string .= $conjunction . PoMaster::getWords($remainder);
            }
            break;
        default:
            $baseUnit = pow(1000, floor(log($number, 1000)));
            $numBaseUnits = (int) ($number / $baseUnit);
            $remainder = $number % $baseUnit;
            $string .= PoMaster::getWords($numBaseUnits) . ' ' . $dictionary[$baseUnit];
            if ($remainder) {
                $string .= $remainder < 100 ? $conjunction : $separator;
                $string .= PoMaster::getWords($remainder);
            }
            break;
    }
    if (null !== $fraction && is_numeric($fraction) && $fraction != '00') {
        $string .= $decimal;
        $words = array();
        foreach (str_split((string) $fraction) as $number) {
            $words[] = $dictionary[$number];
        }
        $string .= implode(' ', $words);
        $string .= ' Halals ';
    }
    return ucwords($string);
}  

您可以在末尾替换变量$string货币。

货币格式(印度 - 卢比((最多工作 13 位数字(

这里我将数字转换为单词格式(货币(

例如:如果您输入 1011,那么您将得到答案:一千十一卢比

使用字符串和数组函数和控制结构(if(

    // Ex: num = 1250.75
    <?php
    if (isset($_POST["num"])) {
       // Getting number before(".")
        $num = $_POST["num"];  // $num = 1250.75
        $num_length = strcspn($num, "."); // length of $num
        $new_num = substr($num, 0, $num_length); // $new_num = 1250
        $new_num = (double) $new_num; // this will remove zero like 0001 = 1 
        $length = strlen($new_num); // length of $new_num
       //Getting number after(".")
        $num2 = strchr($num, "."); // $num2 = .75
        $num2_length = strlen($num2); // length of $num2
        $new_num2 = substr($num2, 1, 3); // This'll give you only '75' from '.75'
        $new_num2 = (double) $new_num2; // remove zero like '05' equals to '5'
        $precision_len = strlen($new_num2); // length of $new_num2
    //Declare global variable
        global $result; // to store result of 1250
        global $result2; // to store result of 75

    // Check length of input and call appropriate function
        if ($length == 1) {
            if ($new_num == 0 && $new_num2 == NULL) {
                $result = "Zero Rupee";
            } else {
                $result = singleDigitWord($new_num) . " Rupee";
            }
            //echo $res;
        } elseif ($length == 2) {
            $result = twoDigitWord($new_num) . " Rupee";
            //echo $res;
        } elseif ($length == 3) {
            $result = threeDigitWord($new_num) . " Rupee";
            //echo $res;
        } elseif ($length == 4 || $length == 5) {
            $result = fourOrFiveDigitWord($length, $new_num) . " Rupee";
        } elseif ($length == 6 || $length == 7) {
            $result = sixOrSevenDigitWord($length, $new_num) . " Rupee";
        } elseif ($length == 8 || $length == 9) {
            $result = eightOrNineDigitWord($length, $new_num) . " Rupee";
        } elseif ($length == 10 || $length == 11) {
            $result = tenOrElevenDigitWord($length, $new_num) . " Rupee";
        } elseif ($length == 12 || $length == 13) {
            $result = twelveOrThirteenDigitWord($length, $new_num) . " Rupee";
        }
        if ($new_num2 > 0) {
            if ($precision_len == 1) {
                $result2 = singleDigitWord($new_num2) . " Paisa";
            } elseif ($precision_len == 2) {
                $result2 = twoDigitWord($new_num2) . " Paisa";
            }
        }
    }
 // Array containing value 1 to 9
    function singleDigitWord($a)
    {
        $array = [
            "1" => "One",
            "2" => "Two",
            "3" => "Three",
            "4" => "Four",
            "5" => "Five",
            "6" => "Six",
            "7" => "Seven",
            "8" => "Eight",
            "9" => "Nine",
        ];
        if (array_key_exists((int) $a, $array)) {
            return $array[$a];
        }
    }

// Array containing value 10 to 19
    function ten2nineteen($a)
    {
        $array = [
            "10" => "Ten",
            "11" => "Eleven",
            "12" => "Twelve",
            "13" => "Thirteen",
            "14" => "Fourteen",
            "15" => "Fifteen",
            "16" => "Sixteen",
            "17" => "Seventeen",
            "18" => "Eighteen",
            "19" => "Nineteen",
        ];
        if (array_key_exists((int) $a, $array)) {
            return $array[$a];
        }
    }
// if length is 2,then 10 to 99 digits conversion
    function twoDigitWord($a)
    {
        if ($a >= 10 && $a <= 19) {
            $output = ten2nineteen($a);
            return $output;
        } elseif ($a >= 20 && $a <= 29) {
            if ($a == 20) {
                return "Twenty";
            } else {
                $a = $a - 20;
                $y = singleDigitWord($a);
                return "Twenty " . $y;
            }
        } elseif ($a >= 30 && $a <= 39) {
            if ($a == 30) {
                return "Thirty";
            } else {
                $a = $a - 30;
                $y = singleDigitWord($a);
                return "Thirty " . $y;
            }
        } elseif ($a >= 40 && $a <= 49) {
            if ($a == 40) {
                return "Forty";
            } else {
                $a = $a - 40;
                $y = singleDigitWord($a);
                return "Forty " . $y;
            }
        } elseif ($a >= 50 && $a <= 59) {
            if ($a == 50) {
                return "Fifty";
            } else {
                $a = $a - 50;
                $y = singleDigitWord($a);
                return "Fifty " . $y;
            }
        } elseif ($a >= 60 && $a <= 69) {
            if ($a == 60) {
                return "Sixty";
            } else {
                $a = $a - 60;
                $y = singleDigitWord($a);
                return "Sixty " . $y;
            }
        } elseif ($a >= 70 && $a <= 79) {
            if ($a == 70) {
                return "Seventy";
            } else {
                $a = $a - 70;
                $y = singleDigitWord($a);
                return "Seventy " . $y;
            }
        } elseif ($a >= 80 && $a <= 89) {
            if ($a == 80) {
                return "Eighty";
            } else {
                $a = $a - 80;
                $y = singleDigitWord($a);
                return "Eighty " . $y;
            }
        } elseif ($a >= 90 && $a <= 99) {
            if ($a == 90) {
                return "Ninty";
            } else {
                $a = $a - 90;
                $y = singleDigitWord($a);
                return "Ninty " . $y;
            }
        }
    }
// if length is 3,then 100 to 999 digits conversion
    function threeDigitWord($a)
    {
        $output = str_split($a);
        $first = singleDigitWord($output[0]);
        $lastdigits = substr($a, -2);
        $lastdigits = (double) $lastdigits;
        $second = lastDigitWord($lastdigits);
        return $first . " Hundred " . $second;
    }
// if length is 4 or 5,then 1000 to 99999 digits conversion
    function fourOrFiveDigitWord($length, $a)
    {
        if ($length == 4) {
            $output = str_split($a);
            $first = singleDigitWord($output[0]);
        } elseif ($length == 5) {
            $output = str_split($a, 2);
            $first = twoDigitWord($output[0]);
        }
        $lastdigits = substr($a, -3);
        $lastdigits = (double) $lastdigits;
        $second = lastDigitWord($lastdigits);
        return $first . " Thousand " . $second;
    }
// if length is 6 or 7,then 100000 to 9999999 digits conversion
    function sixOrSevenDigitWord($length, $a)
    {
        if ($length == 6) {
            $output = str_split($a);
            $first = singleDigitWord($output[0]);
        } elseif ($length == 7) {
            $output = str_split($a, 2);
            $first = twoDigitWord($output[0]);
        }
        $lastdigits = substr($a, -5);
        $lastdigits = (double) $lastdigits;
        $second = lastDigitWord($lastdigits);
        return $first . " Lakh " . $second;
    }
// if length is 8 or 9,then 10000000 to 999999999 digits conversion
    function eightOrNineDigitWord($length, $a)
    {
        if ($length == 8) {
            $output = str_split($a);
            $first = singleDigitWord($output[0]);
        } elseif ($length == 9) {
            $output = str_split($a, 2);
            $first = twoDigitWord($output[0]);
        }
        $lastdigits = substr($a, -7);
        $lastdigits = (double) $lastdigits;
        $second = lastDigitWord($lastdigits);
        return $first . " Crore " . $second;
    }
// if length is 10 or 11,then 1000000000 to 99999999999 digits conversion
    function tenOrElevenDigitWord($length, $a)
    {
        if ($length == 10) {
            $output = str_split($a);
            $first = singleDigitWord($output[0]);
        } elseif ($length == 11) {
            $output = str_split($a, 2);
            $first = twoDigitWord($output[0]);
        }
        $lastdigits = substr($a, -9);
        $lastdigits = (double) $lastdigits;
        $second = lastDigitWord($lastdigits);
        return $first . " Billion " . $second;
    }
// if length is 12 or 13,then 100000000000 to 99999999999999 digits conversion
    function twelveOrThirteenDigitWord($length, $a)
    {
        if ($length == 12) {
            $output = str_split($a);
            $first = singleDigitWord($output[0]);
        } elseif ($length == 13) {
            $output = str_split($a, 2);
            $first = twoDigitWord($output[0]);
        }
        $lastdigits = substr($a, -11);
        $lastdigits = (double) $lastdigits;
        $second = lastDigitWord($lastdigits);
        return $first . " Trillion " . $second;
    }

// this function gets value of $lastdigits which is declared in function above 
// like twelveOrThirteenDigitWord or many other 
// Ex: if your num is 1111 then your last digit will be 111 and you'll get 
// answer by calling this function. lastDigitWords function call one of above 
// function but i declare it here beacause we do not need to write it in every 
// function above to get conversion of $lastdigits
    function lastDigitWord($a)
    {
        if ($a <= 9) {
            return singleDigitWord($a);
        } elseif ($a >= 10 && $a <= 99) {
            return twoDigitWord($a);
        } elseif ($a >= 100 && $a <= 999) {
            return threeDigitWord($a);
        } elseif ($a >= 1000 && $a <= 99999) {
            $new_length = strlen($a);
            return fourORFiveDigitWord($new_length, $a);
        } elseif ($a >= 100000 && $a <= 9999999) {
            $new_length = strlen($a);
            return sixORSevenDigitWord($new_length, $a);
        } elseif ($a >= 10000000 && $a <= 999999999) {
            $new_length = strlen($a);
            return eightOrNineDigitWord($new_length, $a);
        } elseif ($a >= 1000000000 && $a <= 99999999999) {
            $new_length = strlen($a);
            return tenOrElevenDigitWord($new_length, $a);
        }
    }
    ?>
    <html>
        <body>
            <form name="myForm" method="POST" action="">
                <table cellspacing="10" cellpadding="10">
                    <tr>
                        <td><label for="num">Enter Number: </label></td>
                        <td><input type="text" name="num" id="num" value="<?php
                            if (isset($_POST['num'])) {
                                echo $_POST['num'];
                            }
                            ?>"></td>
                        <td><input type="submit" name="submit" id="submit" value="submit"></td>
                    </tr>
                </table>
            </form>
            <p><b>In words : </b>
                <?php
                global $result;
                global $result2;
                echo $result . " " . $result2;
                ?>
            </p>
        </body>
    </html>