2011-02-01 10 views
10

questo è più di un problema estetico, se dovessi uscita due prezzi in PHP:Striscia Prezzo decimali quando necessario

(il primo è 123.45 e la seconda è 123.00)

c'è un modo mi è possibile rimuovere il .00 dal secondo prezzo quando necessario (mostrarlo solo come = 123) ma mantenerlo se ci sono numeri maggiori di 0 per un prezzo (come il primo prezzo?).

Qualsiasi aiuto sarebbe grande, grazie!

TC

risposta

19

che dire ...

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

Mi piace davvero. Piccolo e condensato, bel lavoro. –

+0

Molto bello, complimenti per la semplicità! – TronCraze

+0

Elegante! Lo adoro. – 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

Fantastico, funziona perfettamente Brad! – TronCraze

3

Se non si desidera utilizzare (lento) le espressioni regolari, è possibile utilizzare str_replace:

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

nota: suppongo che tu non voglia cambiare '123.10' in '123.1', vuoi solo rimuovere i doppi zeri, giusto?

Problemi correlati