1 00:00:00,000 --> 00:00:00,310 2 00:00:00,310 --> 00:00:01,750 >> ДАВИД Малан: Идемо сада одушевити. 3 00:00:01,750 --> 00:00:06,500 Испоставило се да у стварном свету подељеном 1 са 10 је заиста 1/10, или 0.1. 4 00:00:06,500 --> 00:00:10,370 Али у рачунарима који имају коначан само број бита са којим се 5 00:00:10,370 --> 00:00:14,290 представљају бројеве, не можете увек представљају бројеве као 1/10 са 6 00:00:14,290 --> 00:00:15,500 савршена прецизност. 7 00:00:15,500 --> 00:00:18,640 Другим речима, рачунари понекад имају да донесу одлуке и не 8 00:00:18,640 --> 00:00:22,740 нужно представља број вас Желим што прецизније ви намеравате. 9 00:00:22,740 --> 00:00:27,020 >> На пример, претпоставимо да се вратим у овај програм и промените 0.1 до, 10 00:00:27,020 --> 00:00:32,073 ох, 0.28, чиме указује да Волео бих да принтф принтф да 11 00:00:32,073 --> 00:00:34,350 28 места прецизности. 12 00:00:34,350 --> 00:00:39,330 Хајде да сада сачувате и саставити програм, овај пут са маке флоатс2. 13 00:00:39,330 --> 00:00:41,910 Покрени га са дот сласх флоатс2. 14 00:00:41,910 --> 00:00:49,980 И, драги Боже, овај пут ја не видим 0.1, али 0.10000000, што је прилично 15 00:00:49,980 --> 00:00:51,070 добро до сада. 16 00:00:51,070 --> 00:00:57,830 Али онда, 14901161193847656250. 17 00:00:57,830 --> 00:00:58,880 >> Па, шта се дешава? 18 00:00:58,880 --> 00:01:02,280 Па, испада да је пловак обично чувају унутар рачунара 19 00:01:02,280 --> 00:01:03,500 са 32 бита. 20 00:01:03,500 --> 00:01:07,340 32 је очигледно коначан број, који подразумева да можете да представљају само 21 00:01:07,340 --> 00:01:11,050 са 32 бита коначан број од покретном зарезу. 22 00:01:11,050 --> 00:01:14,980 Нажалост, то значи да Рачунар не може да представља све могуће 23 00:01:14,980 --> 00:01:18,110 Бројеви у покретном зарезу, или реални бројеви, који постоје у свету, 24 00:01:18,110 --> 00:01:19,980 јер само има толико бита. 25 00:01:19,980 --> 00:01:23,940 >> И тако, шта је очигледно рачунар учињено у овом случају представља 1/10 до 26 00:01:23,940 --> 00:01:26,880 најближи могући Флоатинг Поента вредност да може. 27 00:01:26,880 --> 00:01:31,050 Али, ако погледамо, јер смо овде имали, до 28 децимале, почињемо да видимо да 28 00:01:31,050 --> 00:01:31,970 непрецизности. 29 00:01:31,970 --> 00:01:34,480 Дакле, ово је проблем са постоји савршено решење. 30 00:01:34,480 --> 00:01:38,060 Можемо користити двоструки уместо пловка, који тежи да користи 64 бита као 31 00:01:38,060 --> 00:01:39,410 насупрот 32. 32 00:01:39,410 --> 00:01:42,290 Али наравно, 64 је такође коначан, па проблем ће 33 00:01:42,290 --> 00:01:43,630 остају чак и са дублу. 34 00:01:43,630 --> 00:01:46,323