DAVID Malan: Laten we nu Blow Your Mind. Het blijkt in de praktijk 1 gedeeld 10 inderdaad 1/10 of 0,1. Maar computers die slechts een eindige aantal bits waarmee getallen, dat kan niet altijd nummers als 1/10 te vertegenwoordigen met perfecte precisie. Met andere woorden, computers soms uitspraak te bellen en niet te maken noodzakelijkerwijs het nummer dat u willen zo precies u van plan bent. Bijvoorbeeld, stel dat ik terug in dit programma en verander de 0,1 tot, oh, 0.28, waardoor wordt aangegeven dat Ik wil graag printf printf aan 28 plaatsen van precisie. Laten we nu slaan en het programma te compileren, dit keer met make floats2. Voer het uit met stip slash floats2. En, lieve God, deze keer zie ik niet 0,1, maar 0.10000000, dat is vrij goed tot nu toe. Maar dan, 14901161193847656250. Nou, wat is er gaande? Nou, het blijkt dat een float is typisch opgeslagen in een computer met 32 ​​bits. 32 is uiteraard een eindig aantal dat houdt in dat u alleen kan vertegenwoordigen met 32 ​​bits een eindig aantal van floating point waarden. Helaas, dat betekent dat de computer kan niet alle mogelijke vormen floating point getallen of reële getallen, die bestaan ​​in de wereld, omdat het slechts zoveel bits. En dus wat de computer is blijkbaar gedaan wordt in dit geval vertegenwoordigen 1/10 tot zo nauw mogelijke drijvende punt waarde dat het kan. Maar als we, zoals we hier hebben, tot en met 28 decimalen, beginnen we te zien dat onnauwkeurigheid. Dit is dus een probleem geen perfecte oplossing. We kunnen een dubbel in plaats van een float, die de neiging heeft 64 bits gebruiken tegen 32. Maar natuurlijk, 64 is ook eindig, dus het probleem zal blijven zelfs met tweepersoonskamers.