PHP Money Format

Tadi siang iseng2 baca komik Seri PHP Manual 5x kebetulan ketemu hal yang menarik, semoga ini bermanfaat terutama buat yang belum tahu.


Sayangnya ini tidak bisa untuk Windows yang tidak memiliki C Lib. So untuk kasus ini terpaksa pake number_format :)

This the result test from manual sample
====

IDR1.234,56
Rp1.234,56
(Rp        1.234,57)
(Rp********1.234,57)
 IDR****1234,56
The final value is IDR 1.234,5

====
Test on Linux Apache PHP5

This is php source from manual sample (edit for Indonesia Format)

<?php

$number = 1234.56;

// let's print the international format for the en_US locale
setlocale(LC_MONETARY, 'id_ID');     
echo money_format('%i', $number) . "\n";
// USD 1,234.56

// Italian national format with 2 decimals`
setlocale(LC_MONETARY, 'id_ID');     
echo money_format('%.2n', $number) . "\n";
// L. 1.234,56

// Using a negative number
$number = -1234.5672;

// US national format, using () for negative numbers
// and 10 digits for left precision
setlocale(LC_MONETARY, 'id_ID');     
echo money_format('%(#10n', $number) . "\n";
// ($        1,234.57)

// Similar format as above, adding the use of 2 digits of right
// precision and '*' as a fill character
echo money_format('%=*(#10.2n', $number) . "\n";
// ($********1,234.57)

// Let's justify to the left, with 14 positions of width, 8 digits of
// left precision, 2 of right precision, withouth grouping character
// and using the international format for the de_DE locale.
setlocale(LC_MONETARY, 'id_ID');     
echo money_format('%=*^-14#8.2i', 1234.56) . "\n";
// DEM 1234,56****

// Let's add some blurb before and after the conversion specification
setlocale(LC_MONETARY, 'id_ID');
$fmt = 'The final value is %i (after a 10%% discount)';
echo money_format($fmt, 1234.56) . "\n";
// The final value is  GBP 1,234.56 (after a 10% discount)

?>

money_format (PHP 4 >= 4.3.0, PHP 5)

money_format -- Formats a number as a currency string Description string money_format ( string format, float number )

money_format() returns a formatted version of number. This function wraps the C library function strfmon(), with the difference that this implementation converts only one number at a time.

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.

Komentar