DAVID Malan: Idemo sad vas oduševiti. Ispada u stvarnom svijetu 1 podijeljene po 10 je zapravo 1/10, odnosno 0.1. No, u računala koja imaju samo konačna Broj bitova s ​​kojom predstavljaju brojeve, ne možeš uvijek predstavljaju brojeve poput 1/10 s savršena preciznost. Drugim riječima, računala ponekad da prosudbe pozive i ne nužno predstavljaju broj vas želim što preciznije namjeravate. Na primjer, recimo da sam se vratiti u ovaj program i promijeniti 0,1 do, oh, 0,28, čime se pokazuje da Volio bih da se printf printf se 28 mjesta preciznosti. Idemo sada spasiti i sastaviti program, ovaj put s make floats2. Pokrenite ga s dot slash floats2. I, dragi Bože, ovaj put vidim ne 0,1, ali 0.10000000, što je prilično dobro do sada. Ali onda, 14901161193847656250. Pa, što se događa? Pa, ispada da je plovak obično pohranjeni unutar računala s 32 bita. 32 je očito konačan broj, koji podrazumijeva da se samo može predstavljati s 32 bita konačan broj od vrijednosti s pomičnim zarezom. Na žalost, to znači da Računalo ne može predstavljati sve je moguće pomičnim zarezom brojeve ili realni brojevi, koje postoje u svijetu, jer ima samo toliko bitova. I tako što računalo je očito učinjeno u ovom slučaju se predstavljaju 1/10 do najbliži mogući Floating točka vrijednost da se može. Ali, ako ćemo gledati, kao što smo ovdje, na 28. decimalnih mjesta, počinjemo vidjeti da nepreciznost. Dakle, to je problem s nije idealno rješenje. Možemo koristiti dupli umjesto float, koji teži za korištenje 64 bita kao za razliku od 32 godine. Ali, naravno, 64 je konačan, pa će problem ostaju čak i sa parovima.