1 00:00:00,000 --> 00:00:00,310 2 00:00:00,310 --> 00:00:01,750 >> DAVID Malan: Le të fryj mendjen tuaj tani. 3 00:00:01,750 --> 00:00:06,500 Ajo rezulton në botën e vërtetë 1 të ndarë nga 10 është e vërtetë 1/10, ose 0.1. 4 00:00:06,500 --> 00:00:10,370 Por në kompjuterat që kanë vetëm një i caktuar Numri i bit me të cilin do të 5 00:00:10,370 --> 00:00:14,290 përfaqësojnë numrat, ju nuk mund gjithmonë përfaqësojnë numra si 1/10 me 6 00:00:14,290 --> 00:00:15,500 saktësi të përsosur. 7 00:00:15,500 --> 00:00:18,640 Me fjalë të tjera, kompjutera ndonjëherë kanë për të bërë thirrje gjykimit dhe nuk 8 00:00:18,640 --> 00:00:22,740 domosdoshmërisht në numrin ju doni si pikërisht si keni ndërmend. 9 00:00:22,740 --> 00:00:27,020 >> Për shembull, mendoj unë të kthehem në ky program dhe për të ndryshuar 0.1 për, 10 00:00:27,020 --> 00:00:32,073 oh, 0.28, duke treguar se Do të doja të printf printf të 11 00:00:32,073 --> 00:00:34,350 28 vendet e saktësi. 12 00:00:34,350 --> 00:00:39,330 Le tani të shpëtuar dhe të hartojnë programin, këtë herë me make floats2. 13 00:00:39,330 --> 00:00:41,910 Drejtuar atë me dot floats2 çaj. 14 00:00:41,910 --> 00:00:49,980 Dhe, i dashur Zot, këtë herë unë nuk shoh 0.1, por 0.10000000, e cila është shumë e 15 00:00:49,980 --> 00:00:51,070 mirë deri më tani. 16 00:00:51,070 --> 00:00:57,830 Por pastaj, 14901161193847656250. 17 00:00:57,830 --> 00:00:58,880 >> E pra, çfarë po ndodh? 18 00:00:58,880 --> 00:01:02,280 E pra, ajo rezulton se një noton është ruhet zakonisht brenda një kompjuter 19 00:01:02,280 --> 00:01:03,500 me 32 bit. 20 00:01:03,500 --> 00:01:07,340 32 është padyshim një numër i caktuar, i cili nënkupton që ju mund të përfaqësojë vetëm 21 00:01:07,340 --> 00:01:11,050 me 32 bit një numër i caktuar e lundrues vlerave pikë. 22 00:01:11,050 --> 00:01:14,980 Për fat të keq, kjo do të thotë se kompjuteri nuk mund të përfaqësojnë të gjitha të jetë e mundur 23 00:01:14,980 --> 00:01:18,110 Numrat pikë lundrues, ose numrave reale, që ekzistojnë në botë, 24 00:01:18,110 --> 00:01:19,980 sepse ajo ka vetëm kaq shumë bit. 25 00:01:19,980 --> 00:01:23,940 >> Dhe kështu që çfarë kompjuteri është me sa duket bërë në këtë rast është e përfaqësojnë 1/10 të 26 00:01:23,940 --> 00:01:26,880 Floating më të afërt të mundshme Vlera pikë që ai mund. 27 00:01:26,880 --> 00:01:31,050 Por nëse ne e shohim, siç e kemi këtu, në 28 vende dhjetore, ne fillojmë të shohim se 28 00:01:31,050 --> 00:01:31,970 pasaktësi. 29 00:01:31,970 --> 00:01:34,480 Pra, ky është një problem me nuk ka zgjidhje e përkryer. 30 00:01:34,480 --> 00:01:38,060 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 31 00:01:38,060 --> 00:01:39,410 krahasim me 32. 32 00:01:39,410 --> 00:01:42,290 Por sigurisht, 64 është gjithashtu e fundme, kështu që problemi do të 33 00:01:42,290 --> 00:01:43,630 mbeten edhe me dyshe. 34 00:01:43,630 --> 00:01:46,323