DAVID Malan: Olgem nüüd löök meelt. Selgub, reaalses maailmas 1 jagatud 10 on tõepoolest 1/10, või 0.1. Aga arvutid, mis on vaid piiratud bittide arvu, millega arvude, sa ei saa alati esindavad numbrid nagu 1/10 koos täiuslik täpsust. Teisisõnu, arvutid mõnikord teha otsus kõnede ja mitte tingimata esindama arvu te tahad nii täpselt kui te kavatsete. Näiteks oletame, et ma lähen tagasi selle programmi ja muuta 0,1, oh, 0,28, mis näitab, et Sooviksin printf et printf et 28 paiku täpsusega. Olgem nüüd salvestada ja programm kompileerida, seekord make floats2. Käivita see dot kaldkriipsuga floats2. Ja kallis Jumal, seekord ma ei näe 0,1, kuid 0.10000000, mis on päris hea siiani. Aga siis 14901161193847656250. Noh, mis toimub? Noh, tuli välja, et float on tavaliselt talletatakse sees arvuti 32 bitti. 32 on ilmselt hulga, mis tähendab, et te ei esinda ainult 32 bitti hulga ujukoma väärtuste. Kahjuks tähendab see, et arvuti ei esinda kõiki võimalikke ujukoma numbrid või reaalarvud, mis on olemas kogu maailmas, sest see on ainult nii palju bitti. Ja nii see, mida arvuti on ilmselt teha sel juhul esindavad 1/10 kuni lähim võimalik ujuva punkt väärtus, see on võimalik. Aga kui me vaatame, kui meil siin, et 28 pärast koma, hakkame nägema, et ebatäpsust. Nii et see on probleem pole ideaalne lahendus. Saame kasutada topelt asemel float, mis kipub kasutada 64 bitti nagu mitte 32. Aga muidugi, 64 on samuti piiratud, nii probleem jääb isegi kahekordistub.