Дэвід Малан: Давайце цяпер адразу вас напавал. Аказваецца, у рэальным свеце 1 падзеленага на самай справе 1 кастрычнік / 10 або 0,1. Але ў кампутарах, толькі канчатковае Лік бітаў, з якім прадстаўляць ліку, вы не можаце заўсёды прадстаўляць ліку як 1/10 з ідэальна дакладнасць. Іншымі словамі, кампутары часам маюць здзяйсняць званкі меркаванні і ня абавязкова адлюстроўваюць нумар, які вы хачу настолькі дакладна, наколькі вы маюць намер. Напрыклад, выкажам здагадку, я іду назад у гэтая праграма і змяніць 0,1 да, ой, 0.28, тым самым паказваючы, што Я хацеў бы Printf ў Е да 28 месцаў дакладнасці. Давайце зараз захаваць і скампіляваць праграму, на гэты раз з макіяжам floats2. Запусціце яго з кропкавай слэш floats2. І, Божа, на гэты раз я не бачу 0,1, але 0.10000000, які з'яўляецца даволі добра да гэтага часу. Але тады, 14901161193847656250. Ну, што адбываецца? Ну, атрымліваецца, што паплавок звычайна захоўваецца ўнутры кампутара з 32 біт. 32, відавочна, канчатковае лік, якое азначае, што вы можаце толькі ўявіць з 32 біт на канчатковае лік з лікаў з якая плавае коскі. На жаль, гэта азначае, што Кампутар не можа прадстаўляць ўсё магчыма колькасці з якая плавае кропкай, або сапраўдныя лікі, што існуе ў свеце, таму што гэта толькі мае так шмат бітаў. І так, што кампутар гэта, па-відаць зроблена ў гэтым выпадку ўяўляюць сабой 1/10 да бліжэйшы магчыма плавае коскі, гэта магчыма. Але калі мы паглядзім, як мы тут, па 28 знакаў пасля коскі, мы пачынаем бачыць, што недакладнасць. Так што гэта праблема з не існуе ідэальнага рашэння. Мы можам выкарыстоўваць на дваіх чалавек замест паплаўка, які мае тэндэнцыю выкарыстоўваць 64 біта ў якасці супраць 32. Але, вядома, 64 таксама канчатковая, так што праблема будзе застаюцца нават з двайнікамі.