Output formattato (sprintf)
Fa parte della sezione Fondamenti del percorso R di Coddy. Lezione 37 di 78.
Sfida
FacileNella lezione precedente, hai completato il Calcolatore per dividere il conto con tutti i calcoli. Ora migliora la formattazione dell'output usando sprintf() per visualizzare gli importi monetari con esattamente 2 cifre decimali.
Modifica le righe di output che mostrano gli importi in dollari per usare sprintf() per la formattazione. La funzione sprintf() ti consente di formattare i numeri con un numero specifico di cifre decimali usando %.2f per 2 cifre decimali.
Aggiorna le seguenti righe di output per mostrare esattamente 2 cifre decimali per tutti gli importi monetari:
Bill: $[bill]Tip amount: $[tip_amount]Total with tip: $[total]Each person pays: $[per_person]
Mantieni i calcoli aritmetici esattamente come nella lezione precedente: tip_amount <- bill * tip_percent / 100. Moltiplicare invece per tip_percent / 100 può comportare una differenza di un centesimo quando il numero viene arrotondato a due cifre decimali.
Usa sprintf() per formattare ogni importo monetario. Ad esempio, sprintf("%.2f", value) formatta un numero con 2 cifre decimali.
Ad esempio, se gli input sono 85.50, 18 e 3, l'output completo dovrebbe essere:
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.63Nota: la percentuale della mancia e il numero di persone devono rimanere numeri interi, senza formattazione decimale.
Provalo tu
# 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 = "")Tutte le lezioni di Fondamenti
4Operatori Parte 2
Operatori logici (AND, OR)Operatori logici Parte 2 (NOT)Ripasso - Logica sempliceLogica vettorializzata Parte 1Logica vettorializzata Parte 27Calcolatore per dividere il conto
Messaggio di benvenutoAcquisire input dell'utente10FizzBuzz con una variante
Panoramica del giocoLa funzione FizzBuzz13Vettori: argomenti avanzati
Slicing e indicizzazione dei vettoriIndicizzazione logicaAritmetica dei vettori e ricicloL’operatore %in%2Variabili e tipi di dati
Tipo di dato numericoTipo di dato interoTipo di dato carattereTipo di dato logicoControllo dei tipi di datoConvenzioni di denominazioneValori mancanti: NARiepilogo - Creazione di variabili8Cicli
Ciclo forCiclo whilebreaknext (continue)Riepilogo - FattorialeGenerazione di sequenze (seq, :)Cicli annidatiRiepilogo - Input dinamico3Operatori Parte 1
Operatori aritmeticiDivisione intera e moduloOperatori di assegnazioneRiepilogo - Matematica sempliceOperatori di confronto6I/O di base
Stampare l'outputcat per l'outputOutput con variabiliLeggere l'input con readline()Nozioni di base sulla conversione dei tipiRiepilogo - Calcolatore dell'etàRiepilogo - Vero o falso9Funzioni
Dichiarare una funzioneArgomenti della funzioneValori di ritornoRiepilogo - Funzione SigmaRiepilogo - Funzione di validazioneValori predefiniti dei parametriEsercitati da solo: Compilatore R online