Округление чисел

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 не предлагает его “из коробки”.

Смотрите также