Autor | Zpráva | ||
---|---|---|---|
IdemeNaHavaj Profil |
#1 · Zasláno: 30. 3. 2014, 19:54:54
Ahoj,
nejako mi blbne počítanie. V PHP mám: $cislo = 9.93; $pripocitane = $cislo*1.2; echo $pripocitane; // vypíše 10.8 Ako je to možné? Ďakujem za vysvetlenie! |
||
Radek9 Profil |
#2 · Zasláno: 30. 3. 2014, 19:57:46
IdemeNaHavaj:
Opravdu? Mně vypisuje správně 11.916. Nevrtal ses v tom? :D |
||
IdemeNaHavaj Profil |
#3 · Zasláno: 30. 3. 2014, 20:09:25
problém vyriešený, to číslo bolo string -_-
|
||
janbarasek Profil |
#4 · Zasláno: 30. 3. 2014, 21:20:00
IdemeNaHavaj:
„problém vyriešený, to číslo bolo string“ Nechápu, PHP umí dynamicky přetypovávat datový typ proměnné, takže by to mělo fungovat i tak. Není problém spíše v tom, že jsi jako řetězec zapsal tu matematickou operaci? |
||
juriad Profil |
#5 · Zasláno: 30. 3. 2014, 21:24:06
echo "9,93" * 1.2; # vypíše 10.8 |
||
Joker Profil |
#6 · Zasláno: 30. 3. 2014, 21:40:44
IdemeNaHavaj:
Pokud úplně základní běžně používaná operace dává neočekávané výsledky, prakticky vždy jsou příčinou jiné než očekávané vstupy. Je extrémně nepravděpodobné, že by PHP (respektive C) obsahovalo takovou chybu v operátoru násobení (samozřejmě přesnost uložení reálných čísel může mírně zkreslit výsledek, ale ne o ~10% na jedné početní operaci). Čili první krok je var_dump toho, co do toho výpočtu leze. |
||
Časová prodleva: 10 let
|
0