>> DAVID Malan: Нека сега ви оставят без дъх.
Оказва се, в реалния свят, една разделена от 10 е наистина 1/10, или 0.1.
Но в областта на компютрите, които имат само ограничен брой битове с което
представляват числа, вие не винаги може представляват числа като 1/10 с
перфектна точност.
С други думи, компютри понякога имат да се направи преценка, разговори и не
задължително да представляват номера, който Искам най-точно имате намерение.
>> Например да предположим, че се връщам в тази програма и промяна на 0.1 до
о, 0.28, като по този начин показва, че Бих искал да ФОРМАТ ФОРМАТ да
28 места на прецизност.
Нека сега спаси и съставяне на програмата, този път с марка floats2.
Пусни го с точка наклонена черта floats2.
И, мили Боже, този път аз не виждам 0.1, но 0.10000000, което е доста
добре досега.
Но след това, 14901161193847656250.
>> Е, какво става?
Е, оказва се, че флоат е обикновено се съхранява вътре в компютър
с 32 бита.
32 е очевидно краен брой, които означава, че можете само да представляват
с 32 бита краен брой на стойности с плаваща запетая.
За съжаление, това означава, че Компютърът не може да представлява всички възможни
числа с плаваща запетая, или реални числа, , които съществуват в света,
защото има само толкова много бита.
>> И така, това, което компютърът е очевидно направено в този случай се представляват 1/10, за да
възможно най-близо плаващ точка стойност, която може.
Но ако погледнем, тъй като ние имаме тук, до 28 знака след десетичната запетая, ние започват да се види, че
неточност.
Така че това е проблем с не идеалното решение.
Ние можем да използваме двойно вместо поплавък, които са склонни да се използва 64 бита като
разлика 32.
Но, разбира се, 64 също е ограничен, така че проблемът ще
остане дори и с двойки.