Форматированный вывод (sprintf)
Часть раздела Основы путешествия по R на Coddy. Урок 37 из 78.
Задание
ЛегкоНа предыдущем уроке ты завершил создание Bill Split Calculator со всеми вычислениями. Теперь улучши форматирование вывода с помощью sprintf(), чтобы отображать денежные значения ровно с 2 знаками после запятой.
Измени строки вывода, в которых отображаются суммы в долларах, используя sprintf() для форматирования. Функция sprintf() позволяет форматировать числа с определённым количеством знаков после запятой, используя %.2f для 2 знаков после запятой.
Обнови следующие строки вывода, чтобы все денежные значения отображались ровно с 2 знаками после запятой:
Bill: $[bill]Tip amount: $[tip_amount]Total with tip: $[total]Each person pays: $[per_person]
Сохрани арифметику точно такой же, как в предыдущем уроке: tip_amount <- bill * tip_percent / 100. Умножение вместо этого на tip_percent / 100 может привести к разнице в один цент после округления числа до двух знаков после запятой.
Используй sprintf(), чтобы форматировать каждое денежное значение. Например, sprintf("%.2f", value) форматирует число до 2 знаков после запятой.
Например, если входные данные — 85.50, 18 и 3, полный вывод должен быть таким:
Welcome to the Bill Split Calculator!
Let's split your bill fairly.
Bill: $85.50
Tip: 18%
People: 3
Tip amount: $15.39
Total with tip: $100.89
Each person pays: $33.63Примечание: процент чаевых и количество людей должны оставаться целыми числами без форматирования десятичных знаков.
Попробуйте сами
# TODO: Write your code below
# Use cat() to display the welcome message
# Remember to use \n for new lines
cat("Welcome to the Bill Split Calculator!\nLet's split your bill fairly.\n")
# Read user inputs
con <- file("stdin", "r")
bill <- as.numeric(suppressWarnings(readLines(con, n = 1)))
tip_percent <- as.numeric(suppressWarnings(readLines(con, n = 1)))
people <- as.numeric(suppressWarnings(readLines(con, n = 1)))
close(con)
# Display confirmation message
cat("Bill: $", bill, "\n", sep = "")
cat("Tip: ", tip_percent, "%\n", sep = "")
cat("People: ", people, "\n", sep = "")
# Calculate tip amount and total
tip_amount <- bill * tip_percent / 100
total <- bill + tip_amount
# Display calculation results
cat("Tip amount: $", tip_amount, "\n", sep = "")
cat("Total with tip: $", total, "\n", sep = "")
# Calculate per person amount
per_person <- total / people
# Display per person amount
cat("Each person pays: $", per_person, "\n", sep = "")Все уроки раздела Основы
4Операторы. Часть 2
Логические операторы (AND, OR)Логические операторы. Часть 2 (NOT)Повторение: простая логикаВекторизованная логика. Часть 1Векторизованная логика. Часть 27Калькулятор разделения счета
Приветственное сообщениеПолучение пользовательского ввода13Векторы: продвинутый уровень
Срезы и индексация векторовЛогическая индексацияАрифметика и ресайклинг векторовОператор %in%2Переменные и типы данных
Числовой тип данныхЦелочисленный тип данныхСимвольный тип данныхЛогический тип данныхПроверка типов данныхПравила именованияПропущенные значения: NAИтоги — создание переменных5Принятие решений
Оператор ifКонструкция if - elseПовторение: Простой калькуляторВложенные конструкции if - else8Циклы
Цикл ForЦикл WhileBreakNext (Continue)Повторение: ФакториалГенерация последовательностей (seq, :)Вложенные циклыПовторение: Динамический ввод3Операторы. Часть 1
Арифметические операторыЦелочисленное деление и остаток от деленияОператоры присваиванияПовторение: простая математикаОператоры сравнения6Основы ввода-вывода
Вывод через printКоманда cat для выводаВывод с переменнымиЧтение ввода через readline()Основы преобразования типовПовторение — Калькулятор возрастаПовторение — Истина или ложь9Функции
Объявление функцииАргументы функцииВозвращаемые значенияПовторение — функция SigmaПовторение — функция валидацииЗначения параметров по умолчанию12Итерация по последовательностям
Итерация по элементам вектораИспользование seq_along()Итерация по символам (strsplit)Функции для работы со строкамиПотренируйтесь самостоятельно: Онлайн-компилятор R