quote:Skapades ursprungligen av: Saffran:
Jag men snälla ace4711, jag vet att du menar väl och skall inte reta upp dig mer, men du skall få en liten fråga, hur skulle du räkna ut 1 - 0,9 om du inte fick använda flyttal?
För att förtydliga lite: Det *går* inte att räkna ut 1 - 0,9 utan att använda flyttal, eftersom man då måste räkna med heltal. Talet 0,9 är inte ett heltal utan tolkas då som en nolla, så uttrycket blir detsamma som 1 - 0, vilket ger resultatet 1. Alternativt kan man runda av 0,9 uppåt vilket ger 1 - 1 = 0.
Enda sättet att öka precisionen är att byta datatyp till double, som är 64-bits flyttal. Men som ace4711 säger så går det fortfarande inte att exakt representera talet 0,1 i binär form om man inte har ett oändligt antal bitar, vilket man aldrig kan ha. Det enda man kan göra är alltså att minska felet, inte eliminera det.