ugrás a tartalomhoz

709.25 + 0.01 = 709.2599999999

spoun · 2004. Júl. 20. (K), 13.50
hello,

az alabbi kod futtatasa utan a cimben emlitett ertektol egy ezredmilliomodot vesztek. miert?

$i=0;
while ($i<999)
{
print "$i*999=".($i*999)."<br>\n";
$i=$i+0.01;
}
?>

koszi,
 
1

lebegopontos szamabrazolas

Hodicska Gergely · 2004. Júl. 20. (K), 14.03
az alabbi kod futtatasa utan a cimben emlitett ertektol egy ezredmilliomodot vesztek. miert?

Ez a lebegopontos szamabrazolas sajatossagaibol fakado hiba. A szamitogepben altalaban ilyen formaban kerulnek tarolasra a tort szamok.

Felho
2

Kettes számrendszer

chx · 2004. Júl. 20. (K), 14.18
Szia,

Mint Felhő jelezte, a probléma ott jelentkezik, hogy a számítógép végtelen kettedes törtként tárolja a 0.01-et. Sajnos a memóriája véges, ezért levágja egy részét, és nem pontosan 0.01-et tárol. Próbáld ki, hogy ha 0.125-tel csinálod ugyanezt, akkor nem lesz gondod, ez ugyanis 2^(-3).

A probléma másik oldala az oktatás. Hogy jut el valaki addig, hogy ciklust írjon, hogy ezt ne tudja? (Figyelem, nem flame -- nem a delikvenst szidom, az oktatóit.)
3

Autodidakta módon tanul

Til · 2004. Júl. 20. (K), 14.33
Általában így jut el a ciklus megírásáig az alapok nélkül. Ráadásul a PHP egy magas szintű nyelv, tehát egyáltalán nem meglepő, hogy akinek ez az első programnyelve és hobbiból írogat, az nem tudja.
4

teljes mertekben igazatok van

spoun · 2004. Júl. 21. (Sze), 11.39
mind igaz, amit irtatok, en eg rendbeteszem az alapokat.
5

Nekem nem adja össsze 32,32+5,3

chipi · 2007. Már. 27. (K), 18.27
Sziasztok!
A php-m miért nem akarja összeadni az így felvitt számot?
32,32+5,3, helyette 37 egészet fogok kapni és ami utána van azt meg levágja :(
$szamol=($termek_tomb[$k]["ar"]) +$szamol;
6

nah

DsA · 2007. Már. 27. (K), 19.01
nah szerinted miért?
amugy teljes mértékben megértem a többieket hogy nem írtak semmit
a php 24 óra alatt kb első órájában levan írva
amugy meg:
32.32+5.3