float.h trong C
float.h trong C Header file có tên float.h của Thư viện C chứa một tập hợp các hằng số đa dạng (phụ thuộc vào nền tảng) liên quan tới các giá trị số thực dấu chấm động. Các hằng này được đề xuất bởi ANSI C. Trước khi tìm hiểu các hằng này, bạn cần biết số thực ...
float.h trong C
Header file có tên float.h của Thư viện C chứa một tập hợp các hằng số đa dạng (phụ thuộc vào nền tảng) liên quan tới các giá trị số thực dấu chấm động. Các hằng này được đề xuất bởi ANSI C. Trước khi tìm hiểu các hằng này, bạn cần biết số thực dấu chấm động gồm 4 thành phần:
Thành phần | Miêu tả |
---|---|
S | Dấu ( +/- ) |
b | Biểu diễn cơ số (base): hệ nhị phân là 2, thập phân là 10, thập lục phân là 16, … |
e | Số mũ (exponent), một số nguyên giữa emin và emax |
p | Số ký tự thập phân có nghĩa (Precision) |
Dựa vào 4 thành phần trên, một số thực dấu chấm động sẽ có giá trị của nó được biểu diễn như sau:
số thực dấu chấm động = ( S ) p x be hoặc số thực dấu chấm động = (+/-) precision x baseexponent
Các macro được định nghĩa trong float.h
Các giá trị sau là trình triển khai riêng và được định nghĩa với chỉ thị #define, nhưng các giá trị này không thể là chữ thường. Ghi chú rằng, tất cả FLT tham chiếu tới kiểu float, DBL tham chiếu tới double và LDBL tham chiếu tới long double.
Macro | Miêu tả |
FLT_ROUNDS | Định nghĩa chế độ làm tròn cho phép cộng số thực dấu chấm động và nó có thể có bất kỳ giá trị nào sau đây: -1 − Không xác định 0 − Làm tròn về 0 1 − Làm tròn về giá trị gần nhất 2 − Hướng về dương vô cực 3 − Hướng về âm vô cực |
FLT_RADIX 2 | Định nghĩa biểu diễn cơ số của số mũ. Base-2 là hệ nhị phân, base-10 là hệ thập phân... |
FLT_MANT_DIG DBL_MANT_DIG LDBL_MANT_DIG |
Các macro này định nghĩa số chữ số để biểu diễn số thực (trong FLT_RADIX base) |
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 (base-10) có thể được biểu diễn mà không thay đổi sau khi làm tròn |
FLT_MIN_EXP DBL_MIN_EXP LDBL_MIN_EXP |
Các macro này xác định giá trị nguyên âm nhỏ nhất cho số mũ (exponent) trong cơ số FLT_RADIX |
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ị nguyên âm nhỏ nhất cho một số mũ (exponent) trong cơ số 10 |
FLT_MAX_EXP DBL_MAX_EXP LDBL_MAX_EXP |
Các macro này xác định giá trị nguyên lớn nhất cho một số mũ (exponent) trong cơ số FLT_RADIX |
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ị nguyên lớn nhất cho một số mũ (exponent) trong cơ số 10 |
FLT_MAX 1E+37 DBL_MAX 1E+37 LDBL_MAX 1E+37 |
Các macro này xác định giá trị số thực dấu chấm động lớn nhất |
FLT_EPSILON 1E-5 DBL_EPSILON 1E-9 LDBL_EPSILON 1E-9 |
Các macro này xác định chữ số có nghĩa tối thiểu mà có thể biểu diễn được |
FLT_MIN 1E-37 DBL_MIN 1E-37 LDBL_MIN 1E-37 |
Các macro này định nghĩa các giá trị số thực dấu chấm động nhỏ nhất |
Ví dụ
Chương trình C sau minh họa cách sử dụng của một số hằng được định nghĩa trong float.h.
#include <stdio.h> #include <float.h> int main() { printf("Gia tri max cua mot so thuc = %.10e ", FLT_MAX); printf("Gia tri min cua mot so thuc = %.10e ", FLT_MIN); printf("So ky so de bieu dien mot so = %.10e ", FLT_MANT_DIG); }
Biên dịch và chạy chương trình C trên sẽ cho kết quả:
Theo Tutorialspoint
Bài trước: errno.h trong C
Bài tiếp: limits.h trong C