ฉันพยายามทำให้ชุดตัวเลขเป็นปกติจาก -100 ถึง 0 เป็นช่วง 10-100 และมีปัญหาเพียงเพื่อสังเกตว่าแม้จะไม่มีตัวแปรเลย แต่ก็ไม่ได้ประเมินวิธีที่ฉันคาดหวังไว้:
>>> (20-10) / (100-10)
0
การแบ่งลอยไม่ทำงาน:
>>> float((20-10) / (100-10))
0.0
หากด้านใดด้านหนึ่งของการหารถูกเหวี่ยงให้ลอยมันจะทำงาน:
>>> (20-10) / float((100-10))
0.1111111111111111
แต่ละด้านในตัวอย่างแรกกำลังประเมินเป็น int ซึ่งหมายความว่าคำตอบสุดท้ายจะถูกส่งไปยัง int เนื่องจาก 0.111 น้อยกว่า. 5 จึงปัดเศษเป็น 0 ในความคิดของฉันไม่โปร่งใส แต่ฉันเดาว่าเป็นอย่างนั้น
มีคำอธิบายอย่างไร?