Ruby:
Округление чисел
Как это сделать:
# Базовое округление
puts 3.14159.round # => 3
puts 2.6.round # => 3
# Указание точности
puts 3.14159.round(2) # => 3.14
puts 2.675.round(2) # => 2.68
# Округление вниз
puts 2.9.floor # => 2
# Округление вверх
puts 2.1.ceil # => 3
# Округление к нулю
puts -2.9.round # => -3
puts -2.9.truncate # => -2
Пример вывода:
3
3
3.14
2.68
2
3
-3
-2
Подробнее
Округление чисел — не новинка, люди делают это на протяжении веков, чтобы упростить расчёты или работать в рамках ограничений своих инструментов. В Ruby метод round
многофункционален и позволяет округлять до ближайшего целого числа по умолчанию или до указанного десятичного знака.
Альтернативой round
является floor
для всегда округления вниз, и ceil
для всегда округления вверх, вне зависимости от значения числа. Чтобы просто отсечь десятичные знаки, вы можете использовать truncate
.
С исторической точки зрения, когда дело доходит до компьютеров, округление становится критически важным при работе с вычислениями с плавающей точкой из-за их присущей неточности. Ruby, как и большинство языков, следует стандарту IEEE 754 для чисел с плавающей точкой, что означает, что он обрабатывает округление таким образом, на который, как можно ожидать, программисты смогут полагаться.
Однако это ещё не всё — существуют такие вещи, как округление банкиров (также известное как округление до ближайшего чётного) — концепции, которые разработчикам Ruby может потребоваться реализовать вручную, поскольку метод round
не предлагает его “из коробки”.
Смотрите также
- Документацию Ruby для метода
round
класса Floats. - Стандарт IEEE для арифметики с плавающей точкой (IEEE 754).
- Понимание точности с плавающей точкой, для более глубокого понимания того, как компьютеры обрабатывают десятичные числа.