David Malan: Kom nou jou gedagtes waai. Dit blyk in die werklike wêreld 1 gedeel 10 is inderdaad 1/10, of 0,1. Maar in rekenaars wat net 'n beperkte aantal stukkies waarmee getalle voor te stel, kan jy nie altyd getalle soos 1/10 verteenwoordig met perfekte akkuraatheid. Met ander woorde, rekenaars soms oordeel oproepe en nie te maak die aantal noodwendig verteenwoordig u wil so presies as jy van plan is. Byvoorbeeld, veronderstel ek gaan terug na hierdie program en verander die 0,1 tot, O, 0,28, en daardeur aandui dat Ek wil graag printf te printf te 28 plekke van presisie. Kom ons nou ook red en stel die program, hierdie keer met make floats2. Doen dit met dot streep floats2. En, liewe God, hierdie keer kan ek nie sien 0.1, maar 0.10000000, wat is redelik tot dusver goed. Maar dan, 14901161193847656250. Wel, wat gaan aan? Wel, dit blyk dat 'n float is tipies gestoor binnekant van 'n rekenaar met 32 ​​stukkies. 32 is natuurlik 'n beperkte aantal, wat impliseer dat jy net kan stel met 32 ​​stukkies 'n beperkte aantal swaai punt waardes. Ongelukkig, wat beteken dat die rekenaar kan nie alle moontlike verteenwoordig swaai punt getalle, of reële getalle, wat bestaan ​​in die wêreld, want dit het net so baie stukkies. En ja, wat die rekenaar se skynbaar gedoen in hierdie geval is verteenwoordig 1/10 tot die naaste moontlike wisseltrofee punt waarde wat dit kan. Maar as ons kyk, as ons hier het tot 28 desimale plekke, het ons begin om te sien dat onakkuraatheid. So dit is 'n probleem met geen perfekte oplossing. Ons kan 'n dubbele plaas van 'n float gebruik, wat geneig is om 64 stukkies te gebruik as teenoor 32. Maar natuurlik, 64 is ook eindig, so sal die probleem bly, selfs met dubbelspel.