Есть ли простой, питонический способ округления до ближайшего целого числа без использования плавающей запятой? Я хотел бы сделать следующее, но с целочисленной арифметики:Round with integer division
skip = int(round(1.0 * total/surplus))
==============
@John: Плавающая точка не воспроизводимы на разных платформах. Если вы хотите, чтобы ваш код проходил тесты на разных платформах, вам нужно избегать с плавающей запятой (или добавить некоторые хакеры для espilon в свои тесты и надеяться, что это сработает). Вышеприведенное может быть достаточно простым, чтобы оно было одинаковым на большинстве/на всех платформах, но я бы предпочел не делать это определение, так как легче избежать плавающей точки в целом. Как это «не в духе Питона»?
@John: Ну, longs в Python могут хранить произвольно большие значения, где float фиксированной точности, поэтому есть стоимость в диапазоне, сложности и возможных ошибок, представляющих с плавающей запятой целочисленную операцию. Хотелось бы, чтобы люди переставали разбрызгивать каждый вопрос глупым словом «Pythonic». –
@GlennMaynard True! Это не очень Pythical. –