Рациональные числа и BigDecimal
Точные арифметические вычисления
«Рациональные числа и BigDecimal» — бесплатный урок Ruby Academy на CoddyKit. Это урок 4 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Ruby Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Ruby Academy содержит 4 уроков всего.
Зачем нужна точная арифметика
Числа с плавающей точкой теряют точность. Для работы с деньгами и дробями Ruby предоставляет рациональные числа и BigDecimal, которые сохраняют точность.
puts 0.1 + 0.2Создание рационального числа
Рациональное число — это точная дробь. Запишите его с суффиксом r или с помощью Rational(num, den).
puts (1r / 3)
puts Rational(2, 4)Рациональные числа упрощаются автоматически
Рациональные числа автоматически сокращаются до несократимого вида, поэтому 2/4 превращается в 1/2.
puts Rational(6, 8)
puts Rational(10, 5)Точная арифметика с дробями
Сложение рациональных чисел сохраняет точность, в отличие от чисел с плавающей точкой. Одна треть плюс одна треть плюс одна треть в точности равна единице.
third = Rational(1, 3)
puts (third + third + third)Числитель и знаменатель
Получайте эти части с помощью numerator и denominator.
r = Rational(3, 4)
puts r.numerator
puts r.denominatorПреобразование рациональных чисел
to_f преобразует рациональное число в число с плавающей точкой, когда Вам нужно его десятичное приближение.
puts Rational(1, 8).to_fЗагрузка BigDecimal
BigDecimal работает с точными десятичными числами и идеально подходит для денег. Сначала подключите его из стандартной библиотеки.
require "bigdecimal"
a = BigDecimal("0.1")
b = BigDecimal("0.2")
puts (a + b).to_s("F")Всегда используйте строки
Создавайте BigDecimal из строк, а не из чисел с плавающей точкой, чтобы точность не терялась ещё до начала вычислений.
require "bigdecimal"
good = BigDecimal("1.1")
puts good.to_s("F")Расчёты с деньгами
BigDecimal сохраняет точность до цента во множестве операций.
require "bigdecimal"
price = BigDecimal("19.99")
qty = 3
total = price * qty
puts total.to_s("F")Округление BigDecimal
round для BigDecimal позволяет точно управлять количеством знаков после запятой.
require "bigdecimal"
n = BigDecimal("2.675")
puts n.round(2).to_s("F")Выбор подходящего инструмента
Используйте рациональные числа для точных дробей и отношений. Используйте BigDecimal для точных денежных значений с десятичной частью. Используйте числа с плавающей точкой для быстрых научных вычислений, где небольшая погрешность допустима.
require "bigdecimal"
puts Rational(1, 3)
puts BigDecimal("0.33").to_s("F")Быстрая проверка
Проверьте точность арифметики.
Итоги
Вы изучили точную арифметику:
- рациональные числа для точных дробей с автоматическим сокращением
numerator,denominator,to_f- BigDecimal из строк для точных денежных вычислений
- выбор подходящего типа для каждой задачи
На этом курс «Числа и математика в Ruby» завершён.
puts (Rational(1, 2) + Rational(1, 3))Изучай Ruby с ИИ-репетитором — бесплатно
Пиши и запускай код прямо в браузере, получай мгновенную помощь от ИИ-репетитора 24/7 и продолжи учиться на сайте или в приложении.
- Курсы
- 29
- Уроки
- 109
Часто задаваемые вопросы
Урок «Рациональные числа и BigDecimal» бесплатный?
Да — полный текст урока «Рациональные числа и BigDecimal» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Ruby Academy, подпишись на CoddyKit PRO. Курс Ruby Academy содержит 4 уроков всего.
Чему я научусь в уроке «Рациональные числа и BigDecimal»?
Точные арифметические вычисления Ты практикуешь Ruby Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Ruby Academy?
Предыдущий опыт не требуется. Ruby Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 4 из 4.
Сколько времени занимает урок «Рациональные числа и BigDecimal»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Ruby Academy?
Да. Каждый урок Ruby Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Целые и вещественные числа
- Арифметика и операторы
- Модуль Math
- Рациональные числа и BigDecimal