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:
|
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