C ไลบรารี - <float.h>

float.hไฟล์ส่วนหัวของ C Standard Library ประกอบด้วยชุดค่าคงที่ขึ้นอยู่กับแพลตฟอร์มต่างๆที่เกี่ยวข้องกับค่าทศนิยม ค่าคงที่เหล่านี้เสนอโดย ANSI C ซึ่งช่วยให้สามารถสร้างโปรแกรมแบบพกพาได้มากขึ้น ก่อนที่จะตรวจสอบค่าคงที่ทั้งหมดควรทำความเข้าใจว่าจำนวนทศนิยมประกอบด้วยสี่องค์ประกอบต่อไปนี้ -

ซีเนียร์ คำอธิบายส่วนประกอบและส่วนประกอบ
1

S

ลงชื่อ (+/-)

2

b

ฐานหรือรัศมีของการแทนเลขยกกำลัง 2 สำหรับเลขฐานสอง 10 สำหรับฐานสิบ 16 สำหรับเลขฐานสิบหกและอื่น ๆ ...

3

e

เลขชี้กำลังเป็นจำนวนเต็มระหว่างค่าต่ำสุด emin และสูงสุด emax.

4

p

ความแม่นยำจำนวนหลักฐาน b ในนัยสำคัญ

จากองค์ประกอบทั้ง 4 ด้านบนจุดลอยตัวจะมีค่าดังนี้ -

floating-point = ( S ) p x be

or

floating-point = (+/-) precision x baseexponent

แมโครไลบรารี

ค่าต่อไปนี้เป็นค่าเฉพาะการนำไปใช้งานและกำหนดด้วย #define directive แต่ค่าเหล่านี้ต้องไม่ต่ำกว่าที่ระบุไว้ที่นี่ โปรดทราบว่าในทุกกรณี FLT หมายถึงประเภทfloat, DBL หมายถึง doubleและ LDBL อ้างถึง long double.

ซีเนียร์ มาโครและคำอธิบาย
1

FLT_ROUNDS

กำหนดโหมดการปัดเศษสำหรับการเพิ่มจุดลอยตัวและสามารถมีค่าใด ๆ ต่อไปนี้ -

  • -1 - ไม่แน่นอน
  • 0 - ไปทางศูนย์
  • 1 - ไปใกล้ที่สุด
  • 2 - สู่อินฟินิตี้เชิงบวก
  • 3 - ไปทางลบอินฟินิตี้
2

FLT_RADIX 2

สิ่งนี้กำหนดการแสดงเลขฐานของเลขชี้กำลัง ฐาน -2 เป็นเลขฐานสองฐาน 10 คือการแทนทศนิยมปกติฐาน -16 คือฐานสิบหก

3

FLT_MANT_DIG

DBL_MANT_DIG

LDBL_MANT_DIG

มาโครเหล่านี้กำหนดจำนวนหลักในตัวเลข (ในฐาน FLT_RADIX)

4

FLT_DIG 6

DBL_DIG 10

LDBL_DIG 10

มาโครเหล่านี้กำหนดจำนวนหลักทศนิยมจำนวนสูงสุด (ฐาน -10) ที่สามารถแสดงโดยไม่มีการเปลี่ยนแปลงหลังจากการปัดเศษ

5

FLT_MIN_EXP

DBL_MIN_EXP

LDBL_MIN_EXP

มาโครเหล่านี้กำหนดค่าจำนวนเต็มลบขั้นต่ำสำหรับเลขชี้กำลังใน FLT_RADIX พื้นฐาน

6

FLT_MIN_10_EXP -37

DBL_MIN_10_EXP -37

LDBL_MIN_10_EXP -37

มาโครเหล่านี้กำหนดค่าจำนวนเต็มลบขั้นต่ำสำหรับเลขชี้กำลังในฐาน 10

7

FLT_MAX_EXP

DBL_MAX_EXP

LDBL_MAX_EXP

มาโครเหล่านี้กำหนดค่าจำนวนเต็มสูงสุดสำหรับเลขชี้กำลังใน FLT_RADIX พื้นฐาน

8

FLT_MAX_10_EXP +37

DBL_MAX_10_EXP +37

LDBL_MAX_10_EXP +37

มาโครเหล่านี้กำหนดค่าจำนวนเต็มสูงสุดสำหรับเลขชี้กำลังในฐาน 10

9

FLT_MAX 1E+37

DBL_MAX 1E+37

LDBL_MAX 1E+37

มาโครเหล่านี้กำหนดค่าทศนิยมที่ จำกัด สูงสุด

10

FLT_EPSILON 1E-5

DBL_EPSILON 1E-9

LDBL_EPSILON 1E-9

มาโครเหล่านี้กำหนดตัวเลขที่มีนัยสำคัญน้อยที่สุดที่แสดงได้

11

FLT_MIN 1E-37

DBL_MIN 1E-37

LDBL_MIN 1E-37

มาโครเหล่านี้กำหนดค่าทศนิยมขั้นต่ำ

ตัวอย่าง

ตัวอย่างต่อไปนี้แสดงการใช้ค่าคงที่บางส่วนที่กำหนดไว้ในไฟล์ float.h

#include <stdio.h>
#include <float.h>

int main () {
   printf("The maximum value of float = %.10e\n", FLT_MAX);
   printf("The minimum value of float = %.10e\n", FLT_MIN);

   printf("The number of digits in the number = %.10e\n", FLT_MANT_DIG);
}

ให้เรารวบรวมและเรียกใช้โปรแกรมข้างต้นซึ่งจะให้ผลลัพธ์ดังต่อไปนี้ -

The maximum value of float = 3.4028234664e+38
The minimum value of float = 1.1754943508e-38
The number of digits in the number = 7.2996655210e-312