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

Phương thức as_integer_ratio() trong Python: Chuyển float thành phân số rút gọn

Phương thức as_integer_ratio() của kiểu float trả về một tuple hai số nguyên (tử số, mẫu số) sao cho tỷ lệ của chúng chính xác bằng giá trị float ban đầu. Đây là cách biểu diễn chính xác số thực dưới dạng phân số.

Ví dụ 1

float_value = 1.5
integers = float_value.as_integer_ratio()
print(f'{integers[0]} / {integers[1]}')

Kết quả

3 / 2

Ví dụ 2: Số thực phức tạp hơn

float_value = 5.3
integers = float_value.as_integer_ratio()
print(f'{integers[0]} / {integers[1]}')

Kết quả

5967269506265907 / 1125899906842624

Giải thích: Do bản chất biểu diễn nhị phân IEEE 754 của số thực, các số thập phân đơn giản như 5.3 không thể biểu diễn chính xác, dẫn đến tử/mẫu số rất lớn.

Ứng dụng

  • Chuyển đổi số thực sang phân số chính xác cho tính toán ký hiệu (symbolic math).
  • Tránh lỗi làm tròn trong tài chính, khoa học.
  • Giáo dục: minh họa biểu diễn nhị phân của float.

Kết luận

as_integer_ratio() là công cụ mạnh để lấy biểu diễn phân số chính xác của float. Kết hợp với module fractions.Fraction để có thêm chức năng rút gọn, phép toán phân số.