Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] sprintf i zaokraglanie
Forum PHP.pl > Forum > Przedszkole
boya
Witam sprintf zaokragla mi dane ktore mu zapodam... kombinowalem ale nic nie pomaga

  1. <?php
  2. $cena_netto = sprintf("%01.2f",$cena * 1.22);
  3. return $cena_netto;
  4. ?>


i np z 19.99 robi 20.00 :/ moze ktos wie jak to rozwiazac ?
qwaq
Cytat(boya @ 19.07.2007, 17:05:20 ) *
Witam sprintf zaokragla mi dane ktore mu zapodam... kombinowalem ale nic nie pomaga

  1. <?php
  2. $cena_netto = sprintf("%01.2f",$cena * 1.22);
  3. return $cena_netto;
  4. ?>


i np z 19.99 robi 20.00 :/ moze ktos wie jak to rozwiazac ?


o wiele łatwiej by było gdybyśmy wiedzieli co chcesz osiągnąć
matematyk
Odpowiedź jest mocno spóźniona, ale może ta wiadomość jeszcze się komuś przyda. Problem prawdopodobnie polega na tym, że funkcja sprintf zaokrągla, a nie "obcina" liczby. Jeśli np. wstawimy
Kod
<?php
             $cena = 16.39;
             $cena_netto = sprintf("%01.2f", $cena * 1.22);
             return $cena_netto;
       ?>

to cena_netto =19.9958 i po zaokrągleniu daje do części setnych otrzymujemy cena_netto = 20.00. Jeśli nie chcesz by liczba była zaokrąglana można użyć np. czegoś takiego:
Kod
<?php
             $cena = 16.39;
             $cena_netto = sprintf("%01.4f", $cena * 1.22);
       $cena_netto = substr($cena_netto, 0, -2);
             return $cena_netto;
         ?>

U mnie działa.
erix
Ale kombinujesz... number_format" title="Zobacz w manualu PHP" target="_manual.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.