50000*1.1



  • Dear team,

    Trong Python:

    50000*1.1 không bằng 55000.

    Bạn nào biết lý do giúp mình với



  • Đã tìm ra đáp án:

    Do giới hạn của kiểu Float

    Cách giải quyết: 50000*11/10 hoặc dùng Fraction(), Decimal().

    50000*11/10

    from decimal import Decimal
    print(Decimal('1.1')*50000)

    from fractions import Fraction
    print(50000*Fraction(11, 10))

    @,@ Hình như bên C cũng bị giới hạn phần thập phân của biến kiểu float

    Note: Nếu bạn dùng Decimal() với biến thì dùng kèm str(). Mình test nếu không dùng kèm str thì vẫn bị lỗi sai số.


Hãy đăng nhập để trả lời
 

Có vẻ như bạn đã mất kết nối tới Cộng đồng Python Việt Nam, vui lòng đợi một lúc để chúng tôi thử kết nối lại.