Saída Formatada (sprintf)
Parte da seção Fundamentos do Journey de R da Coddy. Lição 37 de 78.
Desafio
FácilNa lição anterior, você concluiu a Calculadora de Divisão de Conta com todos os cálculos. Agora, melhore a formatação da saída usando sprintf() para exibir valores monetários com exatamente 2 casas decimais.
Modifique as linhas de saída que exibem valores em dólares para usar sprintf() na formatação. A função sprintf() permite formatar números com um número específico de casas decimais usando %.2f para 2 casas decimais.
Atualize as seguintes linhas de saída para mostrar exatamente 2 casas decimais para todos os valores monetários:
Bill: $[bill]Tip amount: $[tip_amount]Total with tip: $[total]Each person pays: $[per_person]
Mantenha a operação aritmética exatamente como na lição anterior: tip_amount <- bill * tip_percent / 100. Multiplicar por tip_percent / 100 em vez disso pode resultar em uma diferença de um centavo quando o número for arredondado para duas casas decimais.
Use sprintf() para formatar cada valor monetário. Por exemplo, sprintf("%.2f", value) formata um número para 2 casas decimais.
Por exemplo, se as entradas forem 85.50, 18 e 3, a saída completa deverá ser:
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.63Observação: A porcentagem da gorjeta e o número de pessoas devem permanecer como números inteiros, sem formatação decimal.
Experimente você mesmo
# 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 = "")Todas as lições de Fundamentos
4Operadores - Parte 2
Operadores lógicos (AND, OR)Operadores lógicos - Parte 2 (NOT)Revisão - Lógica simplesLógica vetorizada - Parte 1Lógica vetorizada - Parte 27Calculadora de Divisão da Conta
Mensagem de Boas-vindasObtendo a Entrada do Usuário10FizzBuzz com uma Reviravolta
Visão Geral do JogoA Função FizzBuzz2Variáveis e Tipos de Dados
Tipo de Dado NuméricoTipo de Dado InteiroTipo de Dado CaractereTipo de Dado LógicoVerificando Tipos de DadosConvenções de NomenclaturaValores Ausentes: NARecapitulação - Criação de Variáveis8Laços
Laço ForLaço WhileBreakNext (Continue)Revisão - FatorialGeração de Sequências (seq, :)Laços AninhadosRevisão - Entrada Dinâmica3Operadores - Parte 1
Operadores aritméticosDivisão inteira e móduloOperadores de atribuiçãoRevisão - Matemática simplesOperadores de comparação6Entrada e saída básicas
Imprimir saídacat para saídaSaída com variáveisLendo entrada com readline()Noções básicas de conversão de tiposRecapitulação - Calculadora de idadeRecapitulação - Verdadeiro ou falso9Funções
Declarando uma FunçãoArgumentos de FunçãoValores de RetornoRecapitulação - Função SigmaRecapitulação - Função de ValidaçãoValores de Parâmetros PadrãoPratique por conta própria: Compilador de R online