Преобразование типов
Часть раздела Основы путешествия по Ruby на Coddy — урок 31 из 88.
Когда вы считываете ввод с помощью gets, Ruby всегда возвращает строку, даже если пользователь вводит число. Это становится проблемой, когда вам нужно выполнить вычисления.
age = gets.chomp
puts age + 5Этот код вызовет ошибку, потому что вы не можете сложить число со строкой. Чтобы исправить это, вам нужно преобразовать строку в число с помощью .to_i (в целое число) или .to_f (в число с плавающей точкой):
age = gets.chomp.to_i
puts age + 5Теперь, если пользователь введет «20», результатом будет 25. Используйте .to_f, когда вам нужны десятичные числа:
price = gets.chomp.to_f
puts price * 1.1Вы также можете преобразовывать числа обратно в строки с помощью .to_s. Это полезно, когда вам нужно объединить числа с текстом без использования интерполяции строк:
count = 42
puts "Count: " + count.to_sЗадание
ЛегкоПрочитайте два числа, введенных пользователем. Первое число — целое (integer), а второе — десятичное (float).
Вычислите и выведите на отдельных строках следующее:
- Сумма обоих чисел
- Произведение обоих чисел (умножение)
Обязательно преобразуйте каждый ввод в соответствующий числовой тип перед выполнением вычислений.
Например, если входные данные — 5 и 2.5, результат должен быть:
7.5
12.5Шпаргалка
При чтении ввода с помощью gets, Ruby всегда возвращает строку. Чтобы выполнять вычисления, преобразуйте строки в числа с помощью .to_i (в целое число) или .to_f (в число с плавающей точкой):
age = gets.chomp.to_i
puts age + 5Используйте .to_f для десятичных чисел:
price = gets.chomp.to_f
puts price * 1.1Преобразуйте числа обратно в строки с помощью .to_s:
count = 42
puts "Count: " + count.to_sПопробуйте сами
# Чтение входных данных
integer_num = gets.chomp.to_i
float_num = gets.chomp.to_f
# TODO: Напишите ниже свой код для вычисления суммы и произведения
# Вывод результатов (выведите сумму и произведение на отдельных строках)В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Основы
4Операторы. Часть 2
Логические операторы. Часть 1Логические операторы. Часть 2Повторение — простая логикаЛогические операторы. Часть 3Логические операторы. Часть 47Калькулятор разделения счета
Приветственное сообщениеПолучение пользовательского ввода13Продвинутая работа с массивами
Срезы массивов через диапазоныСрезы массивов через индексыОператоры массивовМетод include?2Переменные и типы данных
Числа и переменныеСтроковый тип данныхЛогический тип данныхТип данных SymbolПроверка типов данныхПравила именованияПовторение: создание переменных5Принятие решений
Оператор IfКонструкция If - ElseПовторение — Простой калькуляторВложенные конструкции If - ElseОператор Unless8Циклы
Цикл For с диапазонамиЦикл WhileОператор BreakОператор NextПовторение: ФакториалЦикл TimesЦикл UntilВложенные циклыПовторение: Динамический ввод3Операторы. Часть 1
Арифметические операторыОператор остатка от деленияСокращенная арифметикаИтоги: простая математикаОператоры сравнения6Основы ввода-вывода
Вывод с помощью putsВывод с помощью print и pВывод с переменнымиВвод с помощью getsМетод chompПреобразование типовИтоги — Калькулятор возрастаИтоги — Истина или ложь