2011-02-01 32 views
10

Esto es más de un problema estético, si yo fuera a la salida de dos precios en PHP:Gaza Precio decimales cuando sea necesario

(siendo el primero 123.45 y el segundo es 123.00)

¿hay alguna manera me puede eliminar el .00 del segundo precio cuando sea necesario (mostrar que solo aparece como = 123) pero que permanezca si hay números mayores que 0 por un precio (¿como el primer precio?).

¡Cualquier ayuda sería genial, gracias!

TC

Respuesta

19

qué pasa ...

$value = preg_replace('~\.0+$~','',$value); 
+0

De hecho me gusta esto. Pequeño y condensado, buen trabajo. –

+0

Muy bonito, felicitaciones por la simplicidad! – TronCraze

+0

Elegante! Quiéralo. – jeffkee

1
function round2($decimal,$places = 2){ 
    $decimal = round($decimal,$places); 
    if (floor($decimal)==$decimal) 
    return (string)floor($decimal); 
    return $decimal; 
} 
echo round2(123.45)."<br />".round2(123.00); 

Something like that?

+0

Fantástico, esto funciona perfectamente Brad! – TronCraze

3

Si no desea utilizar (lento) las expresiones regulares, puede utilizar str_replace:

$value = str_replace('.00', '', $value); 

nota: asumo que no quieres cambiar '123.10' a '123.1', solo quieres eliminar ceros dobles, ¿verdad?

Cuestiones relacionadas