I have a question about formatting the Rupee currency (Indian Rupee - INR).
For example, numbers here are represented as:
1 10 100 1,000 10,000 1,00,000 10,00,000 1,00,00,000 10,00,00,000
Refer Indian Numbering System
I have to do with it PHP.
I have saw this question Displaying Currency in Indian Numbering Format. But couldn't able to get it for PHP my problem.
How to use money_format() in indian currency format?
The Indian rupee sign (₹) is the currency symbol for the Indian rupee (ISO 4217: INR), the official currency of India. Designed by D.
You have so many options but money_format
can do the trick for you.
Example:
$amount = '100000'; setlocale(LC_MONETARY, 'en_IN'); $amount = money_format('%!i', $amount); echo $amount;
Output:
1,00,000.00
Note:
The function money_format() is only defined if the system has strfmon capabilities. For example, Windows does not, so money_format() is undefined in Windows.
Pure PHP Implementation - Works on any system:
$amount = '10000034000'; $amount = moneyFormatIndia( $amount ); echo $amount; function moneyFormatIndia($num) { $explrestunits = "" ; if(strlen($num)>3) { $lastthree = substr($num, strlen($num)-3, strlen($num)); $restunits = substr($num, 0, strlen($num)-3); // extracts the last three digits $restunits = (strlen($restunits)%2 == 1)?"0".$restunits:$restunits; // explodes the remaining digits in 2's formats, adds a zero in the beginning to maintain the 2's grouping. $expunit = str_split($restunits, 2); for($i=0; $i<sizeof($expunit); $i++) { // creates each of the 2's group and adds a comma to the end if($i==0) { $explrestunits .= (int)$expunit[$i].","; // if is first value , convert into integer } else { $explrestunits .= $expunit[$i].","; } } $thecash = $explrestunits.$lastthree; } else { $thecash = $num; } return $thecash; // writes the final format where $currency is the currency symbol. }
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With