2011-09-21 11 views
12

mam ten phpjaki sposób zaokrąglić w php przy zachowaniu dwóch zer

<?php echo round($price, 2); ?> 

i $price może 1.0000

chcę 1.00 ale tylko dostać 1

jakieś pomysły

+6

Należy bezwzględnie przeczytać, że: http://www.php.net/manual/en/function.sprintf .php – j0ker

+0

@ j0ker: Proszę mi powiedzieć, co sprintf ma wspólnego z zaokrąglaniem. –

+5

@FakeCodeMonkeyRashid 'sprintf ("% 3f ", 3.1415) ==>" 3.142 "' – nickf

Odpowiedz

24

Następujące wywołanie printf() powinno zadziałać:

<?php printf("%.2f", $price); ?> 

Dokumentacja dla tej składni najlepiej opisać na stronie sprintf().

+0

Nie widzę miejsca, w którym ma miejsce zaokrąglenie. –

+3

@FakeCodeMonkeyRashid zdarza się w wywołaniu 'round()', a następnie podczas drukowania jest sformatowany tak, aby miał dokładnie 2 końcowe znaki dziesiętne. – nickf

+2

@nickf: Tim powinien to krótko poruszyć. Co stanie się, jeśli dokumentacja PHP nie będzie dostępna, gdy ktoś spojrzy na tę odpowiedź? –

7

number_format to Twój najlepszy zakład.

string number_format (float $number , int $decimals = 0 , string $dec_point = '.' , string $thousands_sep = ',') 

Przykład:

<?php echo number_format(1.0000, 2, '.', ','); ?> 
+0

Nie widzę, gdzie ma miejsce zaokrąglenie. –

+0

@FakeCodeMonkeyRashid drugi parametr? – nickf

+0

@nickf: Rzeczywiście. –

43

number_format utwory:

echo number_format($price, 2);

+1

Po prostu pamiętaj, że (AFAIK) jest to ustawienie regionalne, i że przy pewnych ustawieniach może wyświetlać "1,00" - chociaż może się tu mylę. – nickf

+0

Brat Amen. . – khaverim

Powiązane problemy