Autor Zpráva
Musilda
Profil
Zdravím

mohl by mi někdo popsat chování, když přetypuji float do int?

Mám float 9,70, které potřebuji vynásobit stem a změnit na int:

$price = $value*100;
(int)$price;
Toto vrátí 969.

Pokud udělám:

$price = $value*1000;
$price = $price*0.1;
(int)$price;
Dostanu 970.

Kde tam dochází ke změně?
juriad_
Profil *
Časté potíže, zajímavosti a poučné debaty » Výsledkem výpočtu 1 - 0.9 není přesně 0.1
Počítání v desítkové soustavě není v počítačích nikdy přesné, používej vhodně zaokrouhlování:

(int) round($value * 100);

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0