1 00:00:00,000 --> 00:00:00,310 2 00:00:00,310 --> 00:00:01,750 >> DAVID Malan: Við skulum nú blása þinn hugur. 3 00:00:01,750 --> 00:00:06,500 Það kemur í ljós í hinum raunverulega heimi 1 skipt með því að 10 er örugglega 1/10, eða 0.1. 4 00:00:06,500 --> 00:00:10,370 En í tölvum sem aðeins hafa endanlegt fjöldi bita sem að 5 00:00:10,370 --> 00:00:14,290 táknað tölur, þú getur ekki alltaf táknar tölur eins og 1/10 með 6 00:00:14,290 --> 00:00:15,500 fullkominn nákvæmni. 7 00:00:15,500 --> 00:00:18,640 Með öðrum orðum, hafa tölvur stundum að dómur símtöl og ekki 8 00:00:18,640 --> 00:00:22,740 endilega tákna fjölda þér vil eins nákvæmlega og þú ætlar. 9 00:00:22,740 --> 00:00:27,020 >> Fyrir dæmi, ráð ég að fara aftur í Þetta forrit og breyta 0,1 til, 10 00:00:27,020 --> 00:00:32,073 ó, 0,28, á þann hátt sem gefur til kynna að Mig langar printf til printf til 11 00:00:32,073 --> 00:00:34,350 28 stöðum nákvæmni. 12 00:00:34,350 --> 00:00:39,330 Skulum nú vistað og safna saman forrit, í þetta sinn með förðun floats2. 13 00:00:39,330 --> 00:00:41,910 Keyra það með punktur slash floats2. 14 00:00:41,910 --> 00:00:49,980 Og, kæri Guð, í þetta sinn ég sé ekki 0.1, en 0.10000000, sem er nokkuð 15 00:00:49,980 --> 00:00:51,070 gott svo langt. 16 00:00:51,070 --> 00:00:57,830 En þá, 14901161193847656250. 17 00:00:57,830 --> 00:00:58,880 >> Jæja, hvað er að gerast? 18 00:00:58,880 --> 00:01:02,280 Jæja, það kemur í ljós að fljóta er venjulega geymd inni í tölvunni 19 00:01:02,280 --> 00:01:03,500 með 32 bita. 20 00:01:03,500 --> 00:01:07,340 32 er augljóslega endanlega fjölda sem felur í sér að þú getur aðeins táknað 21 00:01:07,340 --> 00:01:11,050 með 32 bita endanlegri fjölda af fleytitölum. 22 00:01:11,050 --> 00:01:14,980 Því miður, sem felur í sér að tölvan getur ekki táknað allt mögulegt 23 00:01:14,980 --> 00:01:18,110 fleytitölur eða rauntölur, sem ríkir í heiminum, 24 00:01:18,110 --> 00:01:19,980 því það hefur bara svo marga bita. 25 00:01:19,980 --> 00:01:23,940 >> Og svo hvað tölva er greinilega gert í þessu tilfelli er tákna: 1/10 til 26 00:01:23,940 --> 00:01:26,880 næst mögulegt fljótandi lið gildi sem það er hægt. 27 00:01:26,880 --> 00:01:31,050 En ef við skoðum, eins og við höfum hér, að 28 aukastafi, byrjum við að sjá að 28 00:01:31,050 --> 00:01:31,970 imprecision. 29 00:01:31,970 --> 00:01:34,480 Þannig að þetta er vandamál með engin fullkomin lausn. 30 00:01:34,480 --> 00:01:38,060 Við getum notað tvöfaldan í staðinn af a flot, sem hefur tilhneigingu til að nota 64 bita eins og 31 00:01:38,060 --> 00:01:39,410 öfugt við 32. 32 00:01:39,410 --> 00:01:42,290 En auðvitað, 64 er einnig tímabundið, svo er vandamálið mun 33 00:01:42,290 --> 00:01:43,630 vera jafnvel með tvíliðaleik. 34 00:01:43,630 --> 00:01:46,323