Tôi nghĩ rằng có một số mâu thuẫn trong hoạt động phân chia, nhưng tôi không chắc chắn.Kết quả phân chia kỳ lạ trong python 3
Trong đoạn mã sau, tôi sẽ mong đợi một // c là 100.0 hoặc b // c là -99.0.
a = 1.0
b = -1.0
c = 0.01
print (a/c)
print (a//c)
print (b/c)
print (b//c)
cho:
100.0
99.0
-100.0
-100.0
Cảm ơn
Cảm ơn câu trả lời chi tiết. Mặc dù logic là rõ ràng - hành vi này là gây hiểu lầm trong một hoạt động trực quan như vậy. – Baba
@Baba: có lẽ nhưng đây là một trong những cảnh báo về việc sử dụng các số dấu phẩy động. Có nhiều cách hơn số dấu chấm động so với một máy tính có thể hy vọng thể hiện chính xác vì vậy đây là điều cần lưu ý khi sử dụng các số dấu phẩy động. –