Dar formato a un número a una cantidad en dólares en PHP

John Wachira 30 enero 2023
  1. Dar formato a un número a una cantidad en dólares en PHP usando la función number_format
  2. Formatee un número a una cantidad en dólares en PHP usando la función NumberFormatter::formatCurrency
  3. Dar formato a un número a una cantidad en dólares en PHP usando una Expresión regular
  4. Dar formato a un número a una cantidad en dólares en PHP manualmente
Dar formato a un número a una cantidad en dólares en PHP

Este artículo tutorial cubrirá diferentes métodos para dar formato a un número a una cantidad en dólares en PHP con ejemplos. Éstas incluyen:

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

También veremos por qué la función money_format ya no se usa.

Dar formato a un número a una cantidad en dólares en PHP usando la función number_format

Usamos la función number_format para organizar un valor con miles agrupados mientras agregamos lugares decimales y un tipo de moneda.

La función tiene cuatro parámetros:

number_format(NUMBER, DECIMAL DIGITS, THOUSANDS SEPARATOR, DECIMAL SEPARATOR)
  • El número es el valor a formatear.
  • Los dígitos decimales especifican cuántos lugares decimales.
  • El separador decimal identifica qué cadena usar para el punto decimal.
  • El separador de miles dicta la cadena utilizada como separador de miles.

Vale la pena señalar que si el parámetro separador de miles está en uso, los otros tres deben acompañarlo para que su código funcione.

Código de ejemplo:

<?php

//  NUMBER
$amount = 123.45;

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

Producción :

$123.45

Formatee un número a una cantidad en dólares en PHP usando la función NumberFormatter::formatCurrency

Este es el método más reciente y posiblemente el más fácil para formatear números en cadenas que muestran diferentes monedas.

Asegúrese de que la extensión=intl esté habilitada en php.ini.

Hay tres parámetros que debes tener en cuenta:

  • Formatter, que es el objeto NumberFormatter.
  • Importe, que es el valor numérico de la moneda.
  • La ISO 4217 dicta la moneda a utilizar.

Código de ejemplo:

<?php
// NUMBER
$amount = 123;

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

Producción :

$123.00

Ejemplo dos:

<?php
// NUMBER
$amount = 123.456;

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

Producción :

$123.46

Dar formato a un número a una cantidad en dólares en PHP usando una Expresión regular

Este método es una lata entera de gusanos. Entrar en sus detalles solo te confundirá.

Este método organiza los números en miles mientras agrega el signo de moneda de su elección.

Echemos un vistazo a un ejemplo:

<?php
// NUMBER
$amount = 0.13;

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

Producción :

$0.13

Dar formato a un número a una cantidad en dólares en PHP manualmente

Este método es equivalente a forzar una cerradura con una fuerza brutal. Este método le brinda la ventaja de usar cualquier formato que desee.

Veamos un ejemplo:

<?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

Producción :

$100.00

Los métodos anteriores deberían formatear un número en una cadena que muestre dólares y centavos.

Hay otro método llamado money_format, pero no funciona en Windows. Le recomendamos encarecidamente que no utilice esta función, ya que la han obsoleto.

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