Estoy tratando de usar PHP para formatear un número para
Eliminar todos los ceros finales
Agregue una coma para el separador de miles
Haz una lista de dos puntos decimales, asumiendo que no son ceros
Intenté esto, pero no está haciendo exactamente lo que estoy tratando de lograr:
$prices[$title]['reg_price'] = (float)number_format($membership->sell_price, 2, ".", "");
$prices[$title]['three_year_price'] = (float)number_format($membership->attributes[$aid]->options[$three_year_oid]->price, 2, ".", "");
Descubrí que podía eliminar los ceros finales convirtiendo el número en un flotador. Sin embargo, descubrí que necesitaba decirle a number_format que NO use el separador de coma de miles, porque de lo contrario, al convertir 1,500.00 a un flotante, el resultado fue 1.
En resumen, quiero que mi código cambie de 1500,00 a 1500, de 150,00 a 150 y de 19,99 a 19,99. ¿Cómo puedo hacer que esto suceda?
Solución del problema
function parseCurrency($value) {
if ( intval($value) == $value ) {
$return = number_format($value, 0, ".", ",");
}
else {
$return = number_format($value, 2, ".", ",");
/*
If you don't want to remove trailing zeros from decimals,
eg. 19.90 to become: 19.9, remove the next line
*/
$return = rtrim($return, 0);
}
return $return;
}
$prices[] = parseCurrency(1500.00);
$prices[] = parseCurrency(1500.10);
$prices[] = parseCurrency(1500.1);
$prices[] = parseCurrency(1500);
$prices[] = parseCurrency(123.53);
$prices[] = parseCurrency(1224323.53);
$prices[] = parseCurrency(19.99);
print_r($prices);
Salidas:
Array
(
[0] => 1,500
[1] => 1,500.1
[2] => 1,500.1
[3] => 1,500
[4] => 123.53
[5] => 1,224,323.53
[6] => 19.99
)
No hay comentarios.:
Publicar un comentario