>> DAVID Malan: Ejja issa blow moħħok.
Jirriżulta fid-dinja reali 1 maqsuma b'10 huwa tabilħaqq 1/10, jew 0.1.
Iżda fil-kompjuters li huma biss ikollhom finite numru ta 'bits li biex
jirrappreżentaw numri, inti ma tistax dejjem jirrappreżentaw numri bħall 1/10 ma
preċiżjoni perfetta.
Fi kliem ieħor, kompjuters kultant ikollhom biex jagħmlu sejħiet sentenza u ma
neċessarjament jirrappreżentaw in-numru inti jridu preċiżament kemm għandek il-ħsieb.
>> Per eżempju, ejja ngħidu li mmur lura fil dan il-programm u jibdlu l-0.1 u,
oh, 0.28, u b'hekk jindika li Nixtieq printf li printf li
28 postijiet ta 'preċiżjoni.
Ejja issa issalva u jikkumpilaw-programm, din id-darba ma 'make floats2.
Run ma floats2 dot slash.
U, qalb Alla, din id-darba nara ma 0.1, iżda 0.10000000, li huwa pjuttost
tajba s'issa.
Iżda mbagħad, 14901161193847656250.
>> Well, x'inhu għaddej?
Ukoll, jirriżulta li float huwa tipikament maħżuna ġewwa ta 'kompjuter
32 bits.
32 huwa ovvjament numru finit, li jimplika li inti tista 'tirrappreżenta biss
32 bits numru finit ta 'floating valuri tal-punti.
Sfortunatament, dan ifisser li l- kompjuter ma jistax jirrappreżenta possibbli
b'punt li jvarja numri, jew numri reali, li jeżistu fid-dinja,
minħabba li biss tant bits.
>> U għalhekk dak li l-kompjuter apparentement sar f'dan il-każ jirrappreżentaw 1/10 sa
l Floating eqreb possibbli valur tal-punt li jista '.
Iżda jekk inħarsu, kif għandna hawnhekk, sa 28 postijiet deċimali, nibdew biex tara li
impreċiżjoni.
Allura dan huwa problema ma ebda soluzzjoni perfetta.
Nistgħu nużaw doppja minflok ta 'float, li għandhom tendenza li jużaw 64 bits bħala
kuntrarju 32.
Iżda naturalment, 64 huwa wkoll finit, għalhekk il-problema se
jibqgħu anke ma jirdoppja.