Mostrar número a dos decimales [Ejemplo Completo]

Mostrar número a dos decimales. En este artículo veremos varios ejemplos para poder manejar decimales en números enteros dentro del lenguaje PHP. Todo programador se tiene que liar con decimales cuando estamos desarrollando un sistema de comercio electrónico, Inventarios de productos, etc.

¿Cuál es la forma correcta de redondear un variable PHP a dos decimales?

Existe varias formas de poder hacerlo y depende de nuestra necesidad, por ejemplo, para manejar precio se suele usar la función PHP NUMBER_FORMAT.

Si deseamos redondear los números podemos usar la función ROUND del PHP

Mostrar número a dos decimales
Mostrar número a dos decimales

Mostrar número a dos decimales: Quitar decimales

Utilice round() (utilízalo si esperas un número solo en formato float, de lo contrario usa number_format()

a) Ejemplo #1 round()

<?php
echo round(3.4); // 3
echo round(3.5); // 4
echo round(3.6); // 4
echo round(3.6, 0); // 4
echo round(1.95583, 2); // 1.96
echo round(1241757, -3); // 1242000
echo round(5.045, 2); // 5.05
echo round(5.055, 2); // 5.06
?>

b) Ejemplo #2 round()

<?php
echo round(9.5, 0, PHP_ROUND_HALF_UP); // 10
echo round(9.5, 0, PHP_ROUND_HALF_DOWN); // 9
echo round(9.5, 0, PHP_ROUND_HALF_EVEN); // 10
echo round(9.5, 0, PHP_ROUND_HALF_ODD); // 9

echo round(8.5, 0, PHP_ROUND_HALF_UP); // 9
echo round(8.5, 0, PHP_ROUND_HALF_DOWN); // 8
echo round(8.5, 0, PHP_ROUND_HALF_EVEN); // 8
echo round(8.5, 0, PHP_ROUND_HALF_ODD); // 9
?>

c) Ejemplo #3 round()

echo round(5.045, 2); // 5.05
echo round(5.055, 2); // 5.06

FUNCION NUMBER_FORMAT

number_format — Formatear un número con los millares agrupados

En este ejemplo usaremos la función de PHP number_format() para formatear números. Sin embargo, esta función recibe uno, dos o cuatro parámetros. Por lo tanto, tenemos estas restricciones.

  • Hay un único parámetro requerido (el número que deseamos formatear).
  • El segundo parámetro es opcional, tal como lo es el tercero y el cuarto parámetro.
  • Si declaramos el tercer parámetro, estamos obligados a especificar también el cuarto parámetro.

Veamos con ejemplos los parámetros de la función de formateo de números de PHP, con varios ejemplos.

Puedes probar con echo number_format($total, 2, ‘,’, ‘.’);

Explicación:

  • 2 Indica el número de decimales a mostrar
  • ‘,’ Indica el separador que se va a usar para el separador de los decimales
  • ‘.’ Indica el separador que se va a usar para el separador de los miles

a) Ejemplo 01

$numero= "105";
echo number_format((float)$numero, 2, '.', '');
// Salida en navegador -> 105.00

Esta función devuelve una cadena.

b) Ejemplo 02

$number = 1234545454;
echo $english_format_number = number_format($number, 2);

La salida será:

1,234,545,454.00

c) Ejemplo 03

<?php
$num = 1999.9;
$formattedNum = number_format($num)."<br>";
echo $formattedNum;
$formattedNum = number_format($num, 2);
echo $formattedNum;
?>

La salida será lo siguiente:

2,000
1,999.90

SPRINTF o PRINTF:

Puede utilizar las funciones PHP, printf o sprintf:

a) Ejemplo con sprintf:

Reemplazar el porcentaje (%) signo por una variable pasada como argumento:

$num = 2.12;
echo sprintf("%.3f", $num);

Salida:

2.120

b) Usando con printf:

printf nos permite usar caracteres especiales en un string denominados especificadores. Para cada carácter formateado dentro del string, printf espera que pasemos el argumento que se va a mostrar.

echo printf("%.2f", $num);

La salida sera:

2.124

Función nativa PHP bcdiv

bcdiv — Divide dos números de precisión arbitraria.

echo bcdiv(2.56789, 1, 1); // 2.5
echo bcdiv(2.56789, 1, 2); // 2.56
echo bcdiv(2.56789, 1, 3); // 2.567
echo bcdiv(-2.56789, 1, 1); // -2.5
echo bcdiv(-2.56789, 1, 2); // -2.56
echo bcdiv(-2.56789, 1, 3); // -2.567

CONCLUSIÓN

Como hemos podido apreciar, para formatear números a moneda o decimales podemos usar varias funciones nativas del lenguaje para lograr nuestro propósito.

La implementación es muy sencilla y lo hemos explicado en ejemplos con números enteros.

Espero que esta breve explicación les ayude en sus proyectos web.

 

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Scroll al inicio