Formater un nombre au format monétaire ( money_format, php )

Publié le 28 juin 2008 par Mr32

Cette astuce n'a absolument rien d'extraordinaire, mais peut être vous fera-t-elle découvrir les différentes manières de formater un nombre au format monétaire.

<?php

$number = 1234.567;


// Première méthode ( peu pratique )
echo sprintf('%.2f &euro;', $number); // 1234.57 €


// Seconde méthode ( plus simple mais non automatique )
echo number_format($number, 2, ',', ' ') . ' &euro;'; // 1 234,57 €


// Troisième méthode ( qui peut être automatisée )
setlocale(LC_MONETARY, 'en_US');
echo money_format('%n', $number); // $1,234.57

setlocale(LC_MONETARY, 'fr_FR');
echo money_format('%n', $number); // 1 234,57 Eu
echo money_format('%!n &euro;', $number); // 1 234,57 €

?>

Article inspiré du livre O'Reilly PHP Cookbook, Second Edition.