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.