Ben PHP yuvarlama ile bir sorunu olduğunu merak ediyorum, özellikle 5.2.3 (ben şu anda diğer sürümleri hakkında emin değilim):
$t = 0;
$taxAmount = (5.000 / 100) * 0.7;
$t += $taxAmount;
var_dump($t); // float(0.035)
var_dump(round($t, 2)); // float(0.03)
var_dump(number_format($t, 2)); // string(4) "0.03"
Benim için 0.035 0.04 yuvarlamak gerekir ya ben deli miyim?
Edit
Için Thxs NebyGemini's answer, ben yerine bunu düşündüm:
$t = 0;
$taxAmount = bcmul(bcdiv(5.000, 100, 3), 0.7, 3);
$t += $taxAmount;
var_dump($t); // float(0.035)
var_dump(round($t, 2)); // float(0.04)
var_dump(number_format($t, 2)); // string(4) "0.04"
Hangi mükemmel çalışır.
BTW, ben bir alışveriş sepeti bir vergi hesaplama ediyorum. Sipariş toplamı 0.70 (70 cent) ve vergi% 5'tir.
Edit
Thxs için Ignacio Vazquez-Abrams's answer, bu sorun burada yatıyor göstermek için:
printf('%.18F', 5.000 / 100 * 0.7);