Untuk langsung menjawab pertanyaan Anda, Anda ingin menggunakan istilah itu epsilon
. Lebih tepatnya, itu machine epsilon
tetapi penggunaan umum menjatuhkan "mesin" dan hanya menggunakan epsilon
.
Mencari di salinan lokal saya, float.h
saya melihat:
#define DBL_EPSILON 2.2204460492503131e-016 /* smallest such that 1.0+DBL_EPSILON != 1.0 */
#define FLT_EPSILON 1.192092896e-07F /* smallest such that 1.0+FLT_EPSILON != 1.0 */
#define LDBL_EPSILON DBL_EPSILON /* smallest such that 1.0+LDBL_EPSILON != 1.0 */
Dan komentar yang terkait memperjelas bahwa epsilon adalah istilah yang Anda maksud.
Tetapi kita juga dapat mengandalkan beberapa referensi eksternal lain untuk memverifikasi bahwa itu epsilon
adalah istilah yang benar. Lihat di sini , di sini , di sini , dan akhirnya kombinasi dari tag permintaan SO ini . Saya tidak dapat menemukan referensi langsung ke standar IEEE 754 untuk dikutip.
Anda tidak bertanya, tetapi saya menemukan referensi ini yang sangat relevan dengan contoh yang Anda berikan untuk mengklarifikasi pertanyaan Anda.
Lihat artikel blog ini oleh Bruce Dawson dari Valve tentang membandingkan nilai floating point untuk beberapa wawasan mengapa Anda tidak ingin menggunakan perbandingan yang Anda sarankan.
Ada cukup banyak informasi yang dimasukkan ke dalam artikel itu, tetapi ini adalah cuplikan yang paling relevan dari sana:
Jika membandingkan mengapung untuk kesetaraan adalah ide yang buruk, lalu bagaimana memeriksa apakah perbedaannya dalam beberapa batas kesalahan atau nilai epsilon, seperti ini:
bool isEqual = fabs(f1 – f2) <= epsilon;
Dengan perhitungan ini kita dapat mengungkapkan konsep dua pelampung yang cukup dekat sehingga kita ingin menganggapnya sama. Tetapi nilai apa yang harus kita gunakan untuk epsilon?
Mengingat eksperimen kami di atas, kami mungkin tergoda untuk menggunakan kesalahan dalam jumlah kami, yaitu sekitar 1,19e-7f. Bahkan, bahkan ada define di float.h dengan nilai yang tepat, dan itu disebut FLT_EPSILON.
Jelas itu saja. Dewa file header telah berbicara dan FLT_EPSILON adalah epsilon yang benar!
Kecuali bahwa itu adalah sampah. Untuk angka antara 1.0 dan 2.0 FLT_EPSILON mewakili perbedaan antara pelampung yang berdekatan. Untuk angka yang lebih kecil dari 1,0, epsilon dari FLT_EPSILON dengan cepat menjadi terlalu besar, dan dengan angka yang cukup kecil FLT_EPSILON mungkin lebih besar daripada angka yang Anda bandingkan!
Dawson membahas beberapa pertimbangan lain tentang seluk-beluk yang terlibat ketika membandingkan mengapung dan berurusan dengan nilai-nilai yang sangat kecil seperti ini, jadi saya akan mendorong Anda membaca sisa posnya.