Problemy s cislami rubrika: Programování: PHP
Ahojte.
V poslednej dobe castejsie robim s desatinnymi cislami a narazam na problemy pri praci s nimi. Neviem ako presne pracovat s takymito cislami aby mi vzdy vysiel konstatny vysledok.
Premenna $a aj $b je nacitana z databazy takze je standardne typu string. Aj ked ju pretypujem na float aj tak je vysledok nespravny ale ak pouzijem druhy sposob vypoctu tak je to ok.
$a = "2.80"; $b = "2.80"; echo (int)(("145.60" - $a - $b)*100); // vrati 13999 echo "<br>"; echo (int)("145.60"*100 - $a*100 - $b*100); // vrati 14000
Vopred dakujem za kazdu radu.
Ještě nevidím zmíněno jedno tradiční řešení - fixed decimal point (v kontrastu proti floating decimal point). Tedy zvolím si, že všechny výpočty probíhají s přesností třeba na 2 desetinná místa a tedy místo "2.80" se používá "280". Cílem je použít celočíselnou aritmetiku, která zmíněným neduhem netrpí. Samozřejmě je to komplikovanější na myšlení, třeba při násobení se musí nadbytečné číslice uříznout. Ve výsledku je asi ten bcmath praktičtější, ale tohle řešení pracuje s čísly (ne textem), takže je výhodnější pro některé situace.
Pro zobrazení všech 5 odpovědí se prosím přihlaste:
Nebo se přihlaste jménem a heslem:
Komentáře