Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Lập Trình C

Cách số thực (float) được lưu trữ trong trình biên dịch C

Định dạng IEEE 754

Số thực float được biểu diễn theo chuẩn IEEE (Institute of Electrical and Electronics Engineers).

  • Gồm 3 phần: bit dấu (sign bit), phần mantissa (mantissa), số mũ (exponent).
  • Bit dấu: 0 = dương, 1 = âm.
  • Mantissa: dạng nhị phân đã chuẩn hóa (chuẩn hóa → chữ số đầu luôn là 1).
  • Exponent: số nguyên không dấu có bias (độ chệch). Bias = 127 cho float, 1023 cho double. Đảm bảo exponent lưu trữ luôn dương.

Ví dụ: Làm tròn số thực

Chương trình 1: Làm tròn 4 chữ số thập phân

#include <stdio.h>

int main() {
    float var = 37.66666;
    printf("%.4f", var); // làm tròn 4 chữ số
    return 0;
}

Kết quả

37.6667

Chương trình 2: In 8 chữ số thập phân

#include <stdio.h>

int main() {
    float var = 78.67;
    printf("%.8f", var);
    return 0;
}

Kết quả

78.66999817

Lưu ý: Sai số do biểu diễn nhị phân hữu hạn của số thực.