Formater un nombre en un montant en dollars en PHP

John Wachira 30 janvier 2023
  1. Formater un nombre en un montant en dollars en PHP à l’aide de la fonction number_format
  2. Formater un nombre en un montant en dollars en PHP à l’aide de la fonction NumberFormatter::formatCurrency
  3. Formater un nombre en un montant en dollars en PHP à l’aide d’une expression régulière
  4. Formater manuellement un nombre en un montant en dollars en PHP
Formater un nombre en un montant en dollars en PHP

Cet article de didacticiel couvrira différentes méthodes pour formater un nombre en un montant en dollars en PHP avec des exemples. Ceux-ci inclus:

  • number_format
  • NumberFormatter::formatCurrency
  • Regular expressions
  • Manual format

Nous verrons également pourquoi la fonction money_format n’est plus utilisée.

Formater un nombre en un montant en dollars en PHP à l’aide de la fonction number_format

Nous utilisons la fonction number_format pour organiser une valeur avec des milliers groupés tout en ajoutant des décimales et un type de devise.

La fonction a quatre paramètres :

number_format(NUMBER, DECIMAL DIGITS, THOUSANDS SEPARATOR, DECIMAL SEPARATOR)
  • Le nombre est la valeur à formater.
  • Les chiffres décimaux spécifient le nombre de décimales.
  • Le séparateur décimal identifie la chaîne à utiliser pour le point décimal.
  • Le séparateur de milliers indique la chaîne utilisée comme séparateur de milliers.

Il convient de noter que si le paramètre séparateur de milliers est utilisé, les trois autres doivent l’accompagner pour que votre code fonctionne.

Exemple de code :

<?php

//  NUMBER
$amount = 123.45;

//  TO USD - $123.45
$usd = "$" . number_format($amount, 2, ".");
echo $usd;
?>

Production :

$123.45

Formater un nombre en un montant en dollars en PHP à l’aide de la fonction NumberFormatter::formatCurrency

Il s’agit de la méthode la plus récente et sans doute la plus simple pour formater des nombres en chaînes montrant différentes devises.

Assurez-vous que extension=intl est activé dans php.ini.

Il y a trois paramètres que vous devez garder à l’esprit :

  • Formatter, qui est l’objet NumberFormatter.
  • Montant, qui est la valeur numérique de la devise.
  • L’ISO 4217 dicte la devise à utiliser.

Exemple de code :

<?php
// NUMBER
$amount = 123;

// TO USD - $123.00
$fmt = new NumberFormatter("en_US",  NumberFormatter::CURRENCY);
$usd = $fmt->formatCurrency($amount, "USD");
echo $usd;
?>

Production :

$123.00

Exemple deux :

<?php
// NUMBER
$amount = 123.456;

// TO USD - $123.46
$fmt = new NumberFormatter("en_US",  NumberFormatter::CURRENCY);
$usd = $fmt->formatCurrency($amount, "USD");
echo $usd;
?>

Production :

$123.46

Formater un nombre en un montant en dollars en PHP à l’aide d’une expression régulière

Cette méthode est toute une boîte de Pandore. Entrer dans ses détails ne fera que vous embrouiller.

Cette méthode organise les nombres en milliers tout en ajoutant le signe monétaire de votre choix.

Prenons un exemple :

<?php
// NUMBER
$amount = 0.13;

// REGULAR EXPRESSION
$regex = "/\B(?=(\d{3})+(?!\d))/i";
$usd = "$" . preg_replace($regex, ",", $amount);
echo $usd;
?>

Production :

$0.13

Formater manuellement un nombre en un montant en dollars en PHP

Cette méthode équivaut à crocheter une serrure avec une force brutale. Cette méthode vous donne l’avantage d’utiliser n’importe quel format que vous voulez.

Prenons un exemple :

<?php
// FOR A DOLLAR CURRENCY
function curformat ($amount) {
  //  SPLIT WHOLE & DECIMALS
  $amount = explode(".", $amount);
  $whole = $amount[0];
  $decimal = isset($amount[1]) ? $amount[1] : "00" ;

  //  ADD THOUSAND SEPARATORS
  if (strlen($whole) > 3) {
    $temp = ""; $j = 0;
    for ($i=strlen($whole)-1; $i>=0; $i--) {
      $temp = $whole[$i] . $temp;
      $j++;
      if ($j%3==0 && $i!=0) { $temp = "," . $temp; }
    }
    $whole = $temp;
  }

  //  RESULT
  return "\$$whole.$decimal";
}

//  UNIT TEST
echo curformat(100); // $100.00

Production :

$100.00

Les méthodes ci-dessus doivent formater un nombre en une chaîne indiquant des dollars et des cents.

Il existe une autre méthode appelée money_format, mais elle ne fonctionne pas sous Windows. Nous vous déconseillons fortement d’utiliser cette fonction car ils l’ont dépréciée.

Auteur: John Wachira
John Wachira avatar John Wachira avatar

John is a Git and PowerShell geek. He uses his expertise in the version control system to help businesses manage their source code. According to him, Shell scripting is the number one choice for automating the management of systems.

LinkedIn