Я хочу это: < /p>
Код: Выделить всё
>>> round_nearest(1.29, 0.05)
1.25
>>> round_nearest(1.30, 0.05)
1.30
< /code>
Я могу сделать это: < /p>
import math
def round_nearest(n, r):
return n - math.fmod(n, r)
>>> round_nearest(1.27, 0.05)
1.25 # Correct!
>>> round_nearest(1.30, 0.05)
1.25 # Incorrect! Correct would be 1.30.
< /code>
Неправильный ответ выше, по -видимому, из -за округления с плавающей запятой. Я мог бы поместить некоторую специальную проверку, чтобы увидеть, является ли N
Подробнее здесь: https://stackoverflow.com/questions/284 ... ther-float