Visa ett inlägg
Oläst 2009-03-23, 10:13 #6
coredevs avatar
coredev coredev är inte uppkopplad
Bara ett inlägg till!
 
Reg.datum: Sep 2007
Inlägg: 1 554
coredev coredev är inte uppkopplad
Bara ett inlägg till!
coredevs avatar
 
Reg.datum: Sep 2007
Inlägg: 1 554
Citat:
Originally posted by FredrikMH@Mar 20 2009, 16:28
Jag förväntade mig inte att springa på detta problemet men så blev det. Egentligen så är det inget problem men jag undrar ändå varför det blir som det blir.
Kod:
echo 11103-11103.35; exit;
På min utvecklingsdator får jag följade resultat:
-0.35000000000036
På en av mina webbservrar får jag:
-0.35
Det jag undrar över är varför min utvecklingsdator räknar fel. Jag är medveten om att division och multiplikation kan ge decimalproblem för processorer men detta är ju en simpel subtraktion.
Båda dina datorer räknar rätt kan man säga!

Flyttal är dyrt att räkna och lagra, och därför gör man ofta en approximation. Det skall du alltid ha i minnet när du räknar med decimaler. 1/3 = 0.333333... går t.ex. inte att lagra som ett komplett tal, då de har ett oändligt antal decimaler. Vad man gör är då är att bara ta med ett visst antal decimaler, så kallad precision (se iXams inlägg). Tal som är både stora och små samidigt är extra besvärliga (t.ex. 12343535.000000034323) på grund av det sättet som man lagrar flyttal.
coredev är inte uppkopplad   Svara med citatSvara med citat