Dokumentacja funkcji round () stwierdza, że należy przekazać jej liczbę, a pozycje po przecinku do zaokrąglenia. Dlatego powinien to zrobić:
n = 5.59
round(n, 1) # 5.6
Ale w rzeczywistości wkrada się stara, dobra dziwność zmiennoprzecinkowa i dostajesz:
5.5999999999999996
Na potrzeby interfejsu użytkownika muszę wyświetlić 5.6
. Przeszukałem Internet i znalazłem dokumentację, że jest to zależne od mojej implementacji Pythona. Niestety dzieje się tak zarówno na moim komputerze deweloperskim z systemem Windows, jak i na każdym serwerze Linux, którego próbowałem. Zobacz także tutaj .
Poza utworzeniem własnej okrągłej biblioteki, czy można to obejść?
round(5.55, 1) = 5.5
.