I w przyszłości kiedy będziesz chciał aby obliczenia były dokładne, dla liczb zmiennoprzecinkowych, albo używaj ułamków (klasa Fraction), albo bardziej na około, jeśli to możliwe, 'przesuń przecinek/kropkę' w inputcie o pożądaną ilość zer, i dziel dopiero reprezentując wynik.
Ewentualnie jeszcze słyszałem coś o Decimal, ale nie używałem więc nie mogę polecić, osobiście zaprzyjaźniłem się z Fraction i na drugie jeszcze nie znalazłem czasu :)
W obu rozwiązaniach na koniec reprezentując wynik, powinno się dać swobodnie zamienić na float'y tak jak to zaprezentował AsterFV, w drugim sposobie błąd może występować minimalny. Dlatego do dokłądnej reprezentacji cyfr dobrze używać Fractiona, albo nawet rozszerzyć klasę na własny użytek, by odpowiednio dla twoich potrzeb ci wyrzucała wynik:
from fractions import Fraction
class MyFraction(Fraction):
def __str__(self):
return #~ Twoj kod formatujący wynik
Inny sposób na zaokrąglanie liczb przy prostych operacjach pokroju twojej, gdzie błędy są nieznaczne:
round(liczba, ilosc_miejsc_po_przecinku)