DAVID Malan: Le të fryj mendjen tuaj tani. Ajo rezulton në botën e vërtetë 1 të ndarë nga 10 është e vërtetë 1/10, ose 0.1. Por në kompjuterat që kanë vetëm një i caktuar Numri i bit me të cilin do të përfaqësojnë numrat, ju nuk mund gjithmonë përfaqësojnë numra si 1/10 me saktësi të përsosur. Me fjalë të tjera, kompjutera ndonjëherë kanë për të bërë thirrje gjykimit dhe nuk domosdoshmërisht në numrin ju doni si pikërisht si keni ndërmend. Për shembull, mendoj unë të kthehem në ky program dhe për të ndryshuar 0.1 për, oh, 0.28, duke treguar se Do të doja të printf printf të 28 vendet e saktësi. Le tani të shpëtuar dhe të hartojnë programin, këtë herë me make floats2. Drejtuar atë me dot floats2 çaj. Dhe, i dashur Zot, këtë herë unë nuk shoh 0.1, por 0.10000000, e cila është shumë e mirë deri më tani. Por pastaj, 14901161193847656250. E pra, çfarë po ndodh? E pra, ajo rezulton se një noton është ruhet zakonisht brenda një kompjuter me 32 bit. 32 është padyshim një numër i caktuar, i cili nënkupton që ju mund të përfaqësojë vetëm me 32 bit një numër i caktuar e lundrues vlerave pikë. Për fat të keq, kjo do të thotë se kompjuteri nuk mund të përfaqësojnë të gjitha të jetë e mundur Numrat pikë lundrues, ose numrave reale, që ekzistojnë në botë, sepse ajo ka vetëm kaq shumë bit. Dhe kështu që çfarë kompjuteri është me sa duket bërë në këtë rast është e përfaqësojnë 1/10 të Floating më të afërt të mundshme Vlera pikë që ai mund. Por nëse ne e shohim, siç e kemi këtu, në 28 vende dhjetore, ne fillojmë të shohim se pasaktësi. Pra, ky është një problem me nuk ka zgjidhje e përkryer. Ne mund të përdorni një të dyfishtë në vend të një noton, i cili ka tendencë për të përdorur 64 bit si krahasim me 32. Por sigurisht, 64 është gjithashtu e fundme, kështu që problemi do të mbeten edhe me dyshe.