01/10/2018, 10:44

Cách trả lại kết quả khác nhau giữa java và python

cho e hỏi là tại sao câu trả lời này lại đúng vậy nhỉ

Henry viết 12:55 ngày 01/10/2018

Cái này đơn giản thôi nếu bạn có mò hai ngôn ngữ
Ở Python

>>> 15 / -4
-3.75
>>> 15 / 4
3.75
>>> 15 // -4
-4
>>> 15 // 4
>>> 3

Vì sao lại thế? Đó là vì khi bạn sử dụng //floor division có nghĩa là kết quả (là kết quả được làm tròn) nhỏ hơn kết quả thực. Ở ví dụ trên kết quả thực khi chia 43.75. Kết quả phải nhỏ hơn => 3. Còn khi chia -4-3.75 do đó -4 mới nhỏ hơn -3.75 nên kết quả phải là -4 không phải -3

Riêng ở Java (chắc na ná như C/C++) thì khi bạn chia như thế nó vẫn sẽ có kết quả chia như Python nhưng khác một điều là nó chơi làm tròn khác. Nó bỏ phần thập phân và lấy phần nguyên. Đó là cách int force type

kết quả 15 / -4 = -3.75
phần nguyên: -3
phần thực: -75
Bài liên quan
0