Thư viện C - <float.h>

Các float.htệp tiêu đề của Thư viện Chuẩn C chứa một tập hợp các hằng số phụ thuộc vào nền tảng khác nhau liên quan đến các giá trị dấu chấm động. Các hằng số này được đề xuất bởi ANSI C. Chúng cho phép tạo các chương trình linh hoạt hơn. Trước khi kiểm tra tất cả các hằng số, bạn nên hiểu rằng số dấu phẩy động bao gồm bốn phần tử sau:

Sr.No. Thành phần & Mô tả Thành phần
1

S

dấu (+/-)

2

b

cơ số hoặc cơ số của biểu diễn số mũ, 2 đối với hệ nhị phân, 10 đối với thập phân, 16 đối với hệ thập lục phân, v.v.

3

e

số mũ, một số nguyên giữa số tối thiểu emin và tối đa emax.

4

p

độ chính xác, số chữ số cơ số b trong ý nghĩa và.

Dựa trên 4 thành phần trên, một dấu phẩy động sẽ có giá trị như sau:

floating-point = ( S ) p x be

or

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

Macro thư viện

Các giá trị sau dành riêng cho việc triển khai và được xác định bằng chỉ thị #define, nhưng các giá trị này không được thấp hơn bất kỳ giá trị nào được đưa ra ở đây. Lưu ý rằng trong mọi trường hợp FLT đề cập đến loạifloat, DBL đề cập đến doublevà LDBL đề cập đến long double.

Sr.No. Macro & Mô tả
1

FLT_ROUNDS

Xác định chế độ làm tròn cho phép cộng dấu phẩy động và nó có thể có bất kỳ giá trị nào sau đây:

  • -1 - không xác định được
  • 0 - về 0
  • 1 - đến gần nhất
  • 2 - về phía dương vô cùng
  • 3 - về phía âm vô cực
2

FLT_RADIX 2

Điều này xác định biểu diễn cơ số của số mũ. Cơ số 2 là hệ nhị phân, cơ số 10 là biểu diễn thập phân bình thường, cơ số 16 là hệ Hex.

3

FLT_MANT_DIG

DBL_MANT_DIG

LDBL_MANT_DIG

Các macro này xác định số chữ số trong số (trong cơ sở FLT_RADIX).

4

FLT_DIG 6

DBL_DIG 10

LDBL_DIG 10

Các macro này xác định số chữ số thập phân tối đa (cơ số 10) có thể được biểu diễn mà không thay đổi sau khi làm tròn.

5

FLT_MIN_EXP

DBL_MIN_EXP

LDBL_MIN_EXP

Các macro này xác định giá trị số nguyên âm tối thiểu cho một số mũ trong FLT_RADIX cơ sở.

6

FLT_MIN_10_EXP -37

DBL_MIN_10_EXP -37

LDBL_MIN_10_EXP -37

Các macro này xác định giá trị số nguyên âm tối thiểu cho một số mũ trong cơ số 10.

7

FLT_MAX_EXP

DBL_MAX_EXP

LDBL_MAX_EXP

Các macro này xác định giá trị số nguyên lớn nhất cho một số mũ trong FLT_RADIX cơ sở.

số 8

FLT_MAX_10_EXP +37

DBL_MAX_10_EXP +37

LDBL_MAX_10_EXP +37

Các macro này xác định giá trị số nguyên lớn nhất cho một số mũ trong cơ số 10.

9

FLT_MAX 1E+37

DBL_MAX 1E+37

LDBL_MAX 1E+37

Các macro này xác định giá trị dấu phẩy động hữu hạn tối đa.

10

FLT_EPSILON 1E-5

DBL_EPSILON 1E-9

LDBL_EPSILON 1E-9

Các macro này xác định chữ số quan trọng nhất có thể biểu diễn.

11

FLT_MIN 1E-37

DBL_MIN 1E-37

LDBL_MIN 1E-37

Các macro này xác định các giá trị dấu phẩy động tối thiểu.

Thí dụ

Ví dụ sau đây cho thấy việc sử dụng một vài hằng số được định nghĩa trong tệp 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);
}

Hãy để chúng tôi biên dịch và chạy chương trình trên sẽ tạo ra kết quả sau:

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