Zadejte hledaný výraz...

floor(5510 * 0.7)

GaudentiusIt
verified
rating uzivatele
15. 4. 2011 13:39:19
Dobrý den, řeším jeden výpočet a funkce "floor" se chová nepochopitelně:
floor(5510 * 0.7) // 3856
správný výsledek ovšem měl být: 3857
Setka jste se stím někdo? Děkuji za nápovědu :-)
15. 4. 2011 13:39:19
https://webtrh.cz/diskuse/floor5510-0-7#reply628568
hm
verified
rating uzivatele
(20 hodnocení)
15. 4. 2011 13:45:09
klasicka chyba v pocitani s desetinnymi cisly v php, pro desetinna cisla zasarne pouzivam http://php.net/manual/en/book.bc.php (pokud pocitas s desetinnymi cisly je vysledek 3857 vyjadreno v php vlatsne jako 3856.9 periodickych protoze se vypocet s desetinnymi cisly nevejde do pameti tak, aby mohl byt vypocitan s absolutni presnosti - neni to tedy jen problem php ale obecne desetinnyhc vypoctu v pocitaci, proto jsou tu tyto specialni fce)
vzhledem k tomu ze chces zaokrouhlovat vzdy dolu, nepomuze ti ani pretypovani na int (ktery by to zakrouhloval vzdy nahoru/dolu podle aktualniho vysledku)
takze bcmath:
vrací
15. 4. 2011 13:45:09
https://webtrh.cz/diskuse/floor5510-0-7#reply628567
GaudentiusIt
verified
rating uzivatele
15. 4. 2011 13:55:01
Díky za odpověď, dá se nějak vypsat skutečná hodnota, když php ukazuje 3857? abych viděl, že skutená hodnota je 3856.9?http://webtrh.cz/newreply.php?p=646911&noquote=1
15. 4. 2011 13:55:01
https://webtrh.cz/diskuse/floor5510-0-7#reply628566
hm
verified
rating uzivatele
(20 hodnocení)
15. 4. 2011 14:12:34
Napsal GaudentiusIt;646923
Díky za odpověď, dá se nějak vypsat skutečná hodnota, když php ukazuje 3857? abych viděl, že skutená hodnota je 3856.9?http://webtrh.cz/newreply.php?p=646911&noquote=1
to nevim, ono se to pri vypisu upravuje na spravny vysledek, blbosti toi dela jen kdyz s tim dal pracujes (bud dal pocitas nebo takhle zaokrouhlujes)
15. 4. 2011 14:12:34
https://webtrh.cz/diskuse/floor5510-0-7#reply628565
w3m
verified
rating uzivatele
(22 hodnocení)
15. 4. 2011 23:47:16
napada me vrazedny reseni to pretypovat na string a pak zpatky na float
echo floor((float)((string)(5509 * 0.7)));
// nebo jen floor((string)(5509 * 0.7));, on to PHP prevede automaticky.
?>
15. 4. 2011 23:47:16
https://webtrh.cz/diskuse/floor5510-0-7#reply628564
Pro odpověď se přihlašte.
Přihlásit