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

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 не пропонує це за замовчуванням.

Дивіться також