Warum ist 1 / 5.0 nicht 0.2, sondern 0.20000000000000001? Immer wieder wird diese Frage gestellt. Die Antwort ist ganz einfach. Ein Computer kann nicht anders mit Dezimalzahlen rechnen. Das betrifft nicht nur Python, sondern auch jede andere Programmiersprache.
Ich brauch aber schöne Zahlen
Wenns nur um die Ausgabe von Dezimalzahlen geht kann man wunderbar str() verwenden:
1 >>> 3 / 5.0
2 0.59999999999999998
3 >>> str(3 / 5.0)
4 '0.6'
Ich brauchs aber genauer!
Dann solltest du dir das decimal Modul ansehen:
1 >>> from decimal import Decimal
2 >>> d1 = Decimal('3')
3 >>> d2 = Decimal('5.0')
4 >>> d1 / d2
5 Decimal("0.6")
6 >>> d1 = Decimal('3.65')
7 >>> d2 = Decimal('4.12')
8 >>> d1 / d2
9 Decimal("0.8859223300970873786407766990")