Обычно алгоритм «округления до ближайшего x » имеет вид:
round(x / precision)) * precision
Иногда лучше умножить на 1 / precision
, потому что это целое число (и, следовательно, оно работает немного быстрее):
round(x * (1 / precision)) / (1 / precision)
В вашем случае это будет:
round(x * (1 / 0.05)) / (1 / 0.05)
который оценил бы:
round(x * 20) / 20;
Хотя я не знаю Python, поэтому синтаксис может быть неправильным, но я уверен, что вы можете понять это.