Menu
Coddy logo textTech

Основы преобразования типов

Часть раздела Основы путешествия по R на Coddy — урок 30 из 78.

Как упоминалось в предыдущем уроке, readline() всегда возвращает строку символов. Если пользователь вводит "25", вы получаете текст "25", а не число 25. Это важно, потому что вы не можете выполнять математические операции с текстом.

Чтобы преобразовать строку символов в число, используйте as.numeric():

input <- "42"
number <- as.numeric(input)

cat(number + 8, "\n")  # Вывод: 50

Это важно при работе с пользовательским вводом. Вот распространенный шаблон, который вы будете использовать:

age_text <- readline()
age <- as.numeric(age_text)

cat("In 10 years, you will be", age + 10, "\n")

Вы также можете выполнить преобразование в обратном направлении, используя as.character():

number <- 100
text <- as.character(number)

cat("The value is:", text, "\n")

Преобразование чисел в символы полезно, когда вам нужно объединить их с другим текстом или когда функция специально требует ввода символов. Эти функции преобразования — ваши инструменты для перехода между типами данных всякий раз, когда это требуется вашей программе.

challenge icon

Задание

Легко

Прочитайте два числовых значения в качестве входных данных, выполните расчет и выведите результат с меткой.

Вы получите два входных значения:

  1. Цена (в виде строки)
  2. Количество (в виде строки)

Преобразуйте оба входных значения в числовые с помощью as.numeric(), затем рассчитайте общую стоимость, умножив цену на количество.

Выведите результат в следующем формате:

Total: [result]

Используйте cat() для вывода и добавьте символ новой строки \n в конце.

Например, если входные данные — 15.50 и 4, результат должен быть:

Total: 62

Шпаргалка

Используйте as.numeric() для преобразования текстовой строки в число:

input <- "42"
number <- as.numeric(input)

cat(number + 8, "\n")  # Вывод: 50

Распространенный шаблон для преобразования пользовательского ввода:

age_text <- readline()
age <- as.numeric(age_text)

cat("In 10 years, you will be", age + 10, "\n")

Используйте as.character() для преобразования числа в текстовую строку:

number <- 100
text <- as.character(number)

cat("The value is:", text, "\n")

Попробуйте сами

# Чтение входных данных
con <- file("stdin", "r")
price_str <- suppressWarnings(readLines(con, n = 1))
quantity_str <- suppressWarnings(readLines(con, n = 1))
close(con)

# TODO: Напишите ваш код ниже
# 1. Преобразуйте price_str и quantity_str в числовые значения с помощью as.numeric()
# 2. Рассчитайте общую стоимость (цена * количество)
# 3. Выведите результат с помощью cat() в формате "Total: [result]\n"
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Основы