Anda benar-benar memiliki dua pertanyaan di sini.
Kenapa sih ada yang butuh matematika floating point?
Seperti yang ditunjukkan Karl Bielefeldt, angka floating point memungkinkan Anda memodelkan jumlah terus menerus - dan Anda menemukan semuanya di mana-mana - tidak hanya di dunia fisik, tetapi bahkan tempat-tempat seperti bisnis dan keuangan.
Saya telah menggunakan matematika floating point dalam banyak, banyak bidang dalam karir pemrograman saya: kimia, bekerja di AutoCAD, dan bahkan menulis simulator Monte Carlo untuk melakukan prediksi keuangan. Bahkan, ada seorang pria bernama David E. Shaw yang menggunakan teknik pemodelan ilmiah berbasis floating-point untuk Wall Street untuk menghasilkan miliaran.
Dan, tentu saja, ada grafik komputer. Saya berkonsultasi untuk mengembangkan eye candy untuk antarmuka pengguna, dan mencoba melakukannya saat ini tanpa pemahaman yang kuat tentang floating point, trigonometri, kalkulus, dan aljabar linier, akan seperti muncul untuk pertarungan senjata dengan pisau lipat.
Mengapa ada yang butuh pelampung versus ganda ?
Dengan representasi standar IEEE 754, float 32-bit memberi Anda sekitar 7 digit desimal akurasi, dan eksponen dalam kisaran 10 -38 hingga 10 38 . Double 64-bit memberi Anda sekitar 15 digit desimal akurasi, dan eksponen dalam kisaran 10 -307 hingga 10 307 .
Ini mungkin tampak seperti pelampung yang cukup untuk apa yang dibutuhkan oleh siapa pun, tetapi ternyata tidak. Misalnya, banyak kuantitas dunia nyata diukur dalam lebih dari 7 digit desimal.
Tapi yang lebih halus, ada masalah bahasa sehari-hari yang disebut "kesalahan pembulatan". Representasi titik mengambang biner hanya berlaku untuk nilai yang bagian pecahannya memiliki penyebut yang memiliki kekuatan 2, seperti 1/2, 1/4, 3/4, dll. Untuk mewakili fraksi lain, seperti 1/10, Anda "bulat" nilai ke fraksi biner terdekat, tapi itu sedikit salah - itulah "kesalahan pembulatan". Kemudian ketika Anda menghitung dengan angka-angka yang tidak akurat itu, ketidakakuratan dalam hasil bisa jauh lebih buruk daripada yang Anda mulai - kadang-kadang persentase kesalahan berlipat ganda, atau bahkan menumpuk secara eksponensial.
Bagaimanapun, semakin banyak digit biner yang harus Anda kerjakan, semakin dekat representasi biner bulat Anda akan ke angka yang Anda coba wakili, sehingga kesalahan pembulatannya akan lebih kecil. Kemudian ketika Anda melakukan perhitungan matematika, jika Anda memiliki banyak digit untuk dikerjakan, Anda dapat melakukan lebih banyak operasi sebelum kesalahan pembulatan kumulatif menumpuk di mana itu merupakan masalah.
Sebenarnya, 64-bit ganda dengan 15 angka desimal mereka tidak cukup baik untuk banyak aplikasi. Saya menggunakan angka floating point 80-bit pada tahun 1985, dan IEEE sekarang mendefinisikan tipe floating point 128-bit (16-byte), yang dapat saya bayangkan digunakan.