1 00:00:00,000 --> 00:00:00,310 2 00:00:00,310 --> 00:00:01,750 >> DAVID MALAN: Mari kita sekarang meniup fikiran anda. 3 00:00:01,750 --> 00:00:06,500 Ia ternyata di dunia sebenar 1 dibahagikan sebanyak 10 memang 1/10, atau 0.1. 4 00:00:06,500 --> 00:00:10,370 Tetapi dalam komputer yang hanya mempunyai terbatas Bilangan bit dengan yang 5 00:00:10,370 --> 00:00:14,290 mewakili nombor, anda tidak boleh sentiasa mewakili nombor seperti 1/10 dengan 6 00:00:14,290 --> 00:00:15,500 ketepatan sempurna. 7 00:00:15,500 --> 00:00:18,640 Dalam erti kata lain, komputer kadang-kadang mempunyai untuk membuat panggilan penghakiman dan tidak 8 00:00:18,640 --> 00:00:22,740 semestinya mewakili nombor yang anda mahu sebagai tepat kerana anda berniat. 9 00:00:22,740 --> 00:00:27,020 >> Sebagai contoh, andaikan saya pergi semula ke program ini dan menukar 0.1 kepada, 10 00:00:27,020 --> 00:00:32,073 oh, 0.28, dan dengan itu menunjukkan bahawa Saya ingin printf untuk printf untuk 11 00:00:32,073 --> 00:00:34,350 28 tempat ketepatan. 12 00:00:34,350 --> 00:00:39,330 Sekarang mari kita menyimpan dan menyusun program ini, kali ini dengan membuat floats2. 13 00:00:39,330 --> 00:00:41,910 Menjalankannya dengan dot slash floats2. 14 00:00:41,910 --> 00:00:49,980 Dan, Allah sayang, kali ini aku tidak melihat 0.1, tetapi 0.10000000, yang cukup 15 00:00:49,980 --> 00:00:51,070 baik setakat ini. 16 00:00:51,070 --> 00:00:57,830 Tetapi, 14901161193847656250. 17 00:00:57,830 --> 00:00:58,880 >> Nah, apa yang berlaku? 18 00:00:58,880 --> 00:01:02,280 Nah, ternyata bahawa apungan adalah biasanya disimpan di dalam komputer 19 00:01:02,280 --> 00:01:03,500 dengan 32 bit. 20 00:01:03,500 --> 00:01:07,340 32 adalah jelas beberapa terhingga, yang menunjukkan bahawa anda hanya boleh mewakili 21 00:01:07,340 --> 00:01:11,050 dengan 32 bit beberapa terhingga terapung mata yang. 22 00:01:11,050 --> 00:01:14,980 Malangnya, ini bermakna bahawa komputer tidak boleh mewakili semua mungkin 23 00:01:14,980 --> 00:01:18,110 nombor titik terapung, atau nombor nyata, yang wujud di dunia, 24 00:01:18,110 --> 00:01:19,980 kerana ia hanya mempunyai begitu banyak bit. 25 00:01:19,980 --> 00:01:23,940 >> Dan jadi apa komputer adalah nampaknya dilakukan dalam kes ini mewakili 1/10 untuk 26 00:01:23,940 --> 00:01:26,880 terapung atau yang paling dekat nilai ketika itu ia boleh. 27 00:01:26,880 --> 00:01:31,050 Tetapi jika kita melihat, seperti yang kita ada di sini, kepada 28 tempat perpuluhan, kita mula melihat bahawa 28 00:01:31,050 --> 00:01:31,970 ketakpersisan. 29 00:01:31,970 --> 00:01:34,480 Jadi ini adalah masalah dengan ada penyelesaian yang sempurna. 30 00:01:34,480 --> 00:01:38,060 Kita boleh menggunakan dua daripada apungan, yang cenderung untuk menggunakan 64 bit sebagai 31 00:01:38,060 --> 00:01:39,410 berbanding 32. 32 00:01:39,410 --> 00:01:42,290 Tetapi sudah tentu, 64 adalah juga terhad, jadi masalah itu akan 33 00:01:42,290 --> 00:01:43,630 kekal walaupun dengan beregu. 34 00:01:43,630 --> 00:01:46,323