Saya baru-baru ini memperhatikan bahwa int()
putaran float ke arah 0, sedangkan divisi integer putaran float ke lantai.
contohnya:
-7 // 2 = -4
int(-7/2) = -3
Saya telah membaca dokumentasi yang menjelaskan:
kelas int (x, basis = 10)
Kembalikan objek integer yang dibangun dari angka atau string x, atau kembalikan 0 jika tidak ada argumen yang diberikan>. Jika x adalah angka, kembalikan x. int (). Untuk angka floating point, ini memotong menuju nol.
dan:
divisi lantai
Divisi matematika yang membulatkan ke bilangan bulat terdekat. Operator divisi lantai adalah //. Misalnya, ekspresi 11 // 4 mengevaluasi ke 2 berbeda dengan 2,75 yang dikembalikan oleh float true division. Perhatikan bahwa (-11) // 4 adalah -3 karena itu adalah -2.75 dibulatkan ke bawah. Lihat PEP 238.
Tetapi tampaknya tidak masuk akal bagi saya bahwa 2 operasi serupa (float division to integer) harus mengembalikan hasil yang berbeda.
Apakah ada motivasi untuk perbedaan antara fungsi?
Terima kasih.