เราสามารถหาค่าสูงสุดและต่ำสุดของตัวแปร ตัวเลขจำนวนจริง (Real) แต่ละชนิดในภาษา C ได้จากค่า Define ที่อยู่ใน ไฟล์ float.h
ตารางด้านล่างนี้แสดง Define ที่ใช้สำหรับกำหนดค่าสูงสุด (Max) หรือต่ำสุด (Min) และความละเอียด (Precision)
ซึ่งสามารถนำเอาค่า Define มา print แสดงค่าได้ โดย Include ไฟล์ float.h ดัง Source code ตัวอย่าง
#include <stdio.h> /* For command line input and output */ #include <float.h> /* For limits on floating-point types */ int main(void) { printf("min float is %.6e\n", FLT_MIN); printf("max float is %.6e\n", FLT_MAX); printf("float provide %u decimal digits precision.\n\n", FLT_DIG); printf("min double is %.15e\n",DBL_MIN); printf("max double is %.15e\n", DBL_MAX); printf("double provide %u decimal digits precision.\n\n", DBL_DIG); printf("min long double is %.18Le\n", LDBL_MIN); printf("max long double is %.18Le\n", LDBL_MAX); printf("long double provide %u decimal digits precision.\n",LDBL_DIG); return 0; }
จะได้ผลลัพธ์ดังนี้ (Windows 7 32 bit, gcc 4.9.2)
สำหรับใครที่ลองเอา Code ไปรันแล้วเจอค่าขึ้น -1.#QNAN e+000 ดังรูป
วิธีแก้ไขก็คือเวลาที่เรา Compile ให้กำหนด standard ด้วย เช่น –std=c99 เวลา compile กับ gcc
สำหรับคนที่ใช้ Code Block ก็ให้เข้าไป Setting ค่าที่ setting complier ให้ ติ๊กถูก “Have gcc follow the 1999 ISO C language standard [-std=c99]”