Hello Friends, Today I am going to share how to convert number to Indian currency in PHP. Actually recently I was developing a billing software in which I was required to convert billing amount to words, so I thought to share this code to everyone so that anyone else developing any software which required currency conversion can use it.
So, Here is the code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 |
<?php function convertToIndianCurrency($number) { $no = round($number); $decimal = round($number - ($no = floor($number)), 2) * 100; $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; $str [] = ($number < 21) ? $words[$number] . ' ' . $digits[$counter] . $plural : $words[floor($number / 10) * 10] . ' ' . $words[$number % 10] . ' ' . $digits[$counter] . $plural; } else { $str [] = null; } } $Rupees = implode(' ', array_reverse($str)); $paise = ($decimal) ? "And Paise " . ($words[$decimal - $decimal%10]) ." " .($words[$decimal%10]) : ''; return ($Rupees ? 'Rupees ' . $Rupees : '') . $paise . " Only"; } echo "56721351.61 = " . convertToIndianCurrency(56721351.61); |
Output
56721351.61 = Rupees Five Crore Sixty Seven Lakhs Twenty One Thousands Three Hundred Fifty One And Paise Sixty One Only |
Thanks
Please share if you like it
Comments