DAVID Malan: Sekarang mari kita meniup pikiran Anda. Ternyata di dunia nyata 1 dibagi oleh 10 memang 1/10, atau 0,1. Tapi dalam komputer yang hanya memiliki terbatas jumlah bit yang dapat digunakan untuk mewakili angka, Anda tidak bisa selalu mewakili angka seperti 1/10 dengan presisi sempurna. Dengan kata lain, komputer kadang-kadang memiliki untuk membuat panggilan penghakiman dan tidak selalu mewakili nomor Anda ingin setepat Anda berniat. Misalnya, aku kembali ke program ini dan mengubah 0,1 sampai, oh, 0,28, sehingga menunjukkan bahwa Saya ingin printf untuk printf untuk 28 tempat presisi. Mari kita sekarang menyimpan dan mengkompilasi program, kali ini dengan make floats2. Jalankan dengan dot slash floats2. Dan, ya Tuhan, kali ini aku tidak melihat 0,1, tapi 0.10000000, yang cukup baik sejauh ini. Tapi kemudian, 14901161193847656250. Nah, apa yang terjadi? Nah, ternyata pelampung adalah biasanya disimpan dalam komputer dengan 32 bit. 32 jelas merupakan jumlah terbatas, yang menyiratkan bahwa Anda hanya dapat mewakili dengan 32 bit jumlah terbatas floating point nilai. Sayangnya, itu berarti bahwa komputer tidak dapat mewakili semua kemungkinan angka floating point, atau bilangan real, yang ada di dunia, karena hanya memiliki begitu banyak bit. Dan jadi apa komputer rupanya dilakukan dalam hal ini mewakili 1/10 yang terdekat mungkin floating nilai titik yang bisa. Tetapi jika kita melihat, seperti yang kita miliki di sini, untuk 28 tempat desimal, kita mulai melihat bahwa ketidaktepatan. Jadi ini adalah masalah dengan tidak ada solusi yang sempurna. Kita dapat menggunakan ganda bukannya pelampung, yang cenderung menggunakan 64 bit sebagai lawan 32. Tapi tentu saja, 64 juga terbatas, sehingga masalah akan tetap bahkan dengan ganda.