Форматированный вывод (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]
Используйте 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)Функции для работы со строками