>> DAVID MALAN: Mari kita sekarang meniup fikiran anda.
Ia ternyata di dunia sebenar 1 dibahagikan sebanyak 10 memang 1/10, atau 0.1.
Tetapi dalam komputer yang hanya mempunyai terbatas Bilangan bit dengan yang
mewakili nombor, anda tidak boleh sentiasa mewakili nombor seperti 1/10 dengan
ketepatan sempurna.
Dalam erti kata lain, komputer kadang-kadang mempunyai untuk membuat panggilan penghakiman dan tidak
semestinya mewakili nombor yang anda mahu sebagai tepat kerana anda berniat.
>> Sebagai contoh, andaikan saya pergi semula ke program ini dan menukar 0.1 kepada,
oh, 0.28, dan dengan itu menunjukkan bahawa Saya ingin printf untuk printf untuk
28 tempat ketepatan.
Sekarang mari kita menyimpan dan menyusun program ini, kali ini dengan membuat floats2.
Menjalankannya dengan dot slash floats2.
Dan, Allah sayang, kali ini aku tidak melihat 0.1, tetapi 0.10000000, yang cukup
baik setakat ini.
Tetapi, 14901161193847656250.
>> Nah, apa yang berlaku?
Nah, ternyata bahawa apungan adalah biasanya disimpan di dalam komputer
dengan 32 bit.
32 adalah jelas beberapa terhingga, yang menunjukkan bahawa anda hanya boleh mewakili
dengan 32 bit beberapa terhingga terapung mata yang.
Malangnya, ini bermakna bahawa komputer tidak boleh mewakili semua mungkin
nombor titik terapung, atau nombor nyata, yang wujud di dunia,
kerana ia hanya mempunyai begitu banyak bit.
>> Dan jadi apa komputer adalah nampaknya dilakukan dalam kes ini mewakili 1/10 untuk
terapung atau yang paling dekat nilai ketika itu ia boleh.
Tetapi jika kita melihat, seperti yang kita ada di sini, kepada 28 tempat perpuluhan, kita mula melihat bahawa
ketakpersisan.
Jadi ini adalah masalah dengan ada penyelesaian yang sempurna.
Kita boleh menggunakan dua daripada apungan, yang cenderung untuk menggunakan 64 bit sebagai
berbanding 32.
Tetapi sudah tentu, 64 adalah juga terhad, jadi masalah itu akan
kekal walaupun dengan beregu.