Буфер является временным заполнителем (переменные на многих языках программирования) в памяти (поршень/диск), на котором могут быть выведены данные, и затем обработка может быть сделана.
существует много преимуществ Буферизации как он, позволяет вещам произойти параллельно, улучшить производительность IO, и т.д.
Это также имеет многих оборотная сторона если не используемый правильно как переполнение буфера, недостаточное наполнение буфера, и т.д.
Пример C Символьного буфера.
символ *buffer1 = calloc (5, sizeof (символ));
символ *buffer2 = calloc (15, sizeof (символ));
Проверьте эту ссылку, я думаю, это то, что вам нужно. Ruby rounding
class Float
def round_to(x)
(self * 10**x).round.to_f / 10**x
end
def ceil_to(x)
(self * 10**x).ceil.to_f / 10**x
end
def floor_to(x)
(self * 10**x).floor.to_f / 10**x
end
end
[2.36363636363636, 4.567563, 1.23456646544846, 10.5857447736].map do |x|
(x*20).round / 20.0
end
#=> [2.35, 4.55, 1.25, 10.6]
В общем алгоритм для «округления до ближайшего x »:
round(x / precision)) * precision
Иногда лучше умножить на 1 / точность
, потому что это является целым числом (и поэтому он работает немного быстрее):
round(x * (1 / precision)) / (1 / precision)
В вашем случае это будет:
round(x * (1 / 0.05)) / (1 / 0.05)
, которое будет оцениваться как:
round(x * 20) / 20;
Я не знаю никакого Python, поэтому синтаксис может быть не таким правильно, но я уверен, что вы сможете это понять.