>> ДАВИД Малан: Идемо сада одушевити.
Испоставило се да у стварном свету подељеном 1 са 10 је заиста 1/10, или 0.1.
Али у рачунарима који имају коначан само број бита са којим се
представљају бројеве, не можете увек представљају бројеве као 1/10 са
савршена прецизност.
Другим речима, рачунари понекад имају да донесу одлуке и не
нужно представља број вас Желим што прецизније ви намеравате.
>> На пример, претпоставимо да се вратим у овај програм и промените 0.1 до,
ох, 0.28, чиме указује да Волео бих да принтф принтф да
28 места прецизности.
Хајде да сада сачувате и саставити програм, овај пут са маке флоатс2.
Покрени га са дот сласх флоатс2.
И, драги Боже, овај пут ја не видим 0.1, али 0.10000000, што је прилично
добро до сада.
Али онда, 14901161193847656250.
>> Па, шта се дешава?
Па, испада да је пловак обично чувају унутар рачунара
са 32 бита.
32 је очигледно коначан број, који подразумева да можете да представљају само
са 32 бита коначан број од покретном зарезу.
Нажалост, то значи да Рачунар не може да представља све могуће
Бројеви у покретном зарезу, или реални бројеви, који постоје у свету,
јер само има толико бита.
>> И тако, шта је очигледно рачунар учињено у овом случају представља 1/10 до
најближи могући Флоатинг Поента вредност да може.
Али, ако погледамо, јер смо овде имали, до 28 децимале, почињемо да видимо да
непрецизности.
Дакле, ово је проблем са постоји савршено решење.
Можемо користити двоструки уместо пловка, који тежи да користи 64 бита као
насупрот 32.
Али наравно, 64 је такође коначан, па проблем ће
остају чак и са дублу.