Formatowanie wyniku (sprintf)
Część sekcji Podstawy ścieżki R w Coddy. Lekcja 37 z 78.
Wyzwanie
ŁatwyW poprzedniej lekcji ukończono Kalkulator podziału rachunku ze wszystkimi obliczeniami. Teraz popraw formatowanie wyników, używając sprintf(), aby wyświetlać kwoty pieniężne z dokładnie 2 miejscami po przecinku.
Zmodyfikuj wiersze wyświetlające kwoty w dolarach, tak aby do formatowania używały sprintf(). Funkcja sprintf() pozwala formatować liczby z określoną liczbą miejsc po przecinku, używając %.2f dla 2 miejsc po przecinku.
Zaktualizuj poniższe wiersze wyjściowe, aby wszystkie kwoty pieniężne były wyświetlane z dokładnie 2 miejscami po przecinku:
Bill: $[bill]Tip amount: $[tip_amount]Total with tip: $[total]Each person pays: $[per_person]
Zachowaj działania arytmetyczne dokładnie takie jak w poprzedniej lekcji: tip_amount <- bill * tip_percent / 100. Mnożenie przez tip_percent / 100 zamiast tego może spowodować różnicę o jeden cent po zaokrągleniu liczby do dwóch miejsc po przecinku.
Użyj sprintf(), aby sformatować każdą kwotę pieniężną. Na przykład sprintf("%.2f", value) formatuje liczbę do 2 miejsc po przecinku.
Na przykład, jeśli dane wejściowe to 85.50, 18 i 3, pełny wynik powinien wyglądać następująco:
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.63Uwaga: Procent napiwku i liczba osób powinny pozostać liczbami całkowitymi, bez formatowania miejsc po przecinku.
Spróbuj swoich sił
# 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 = "")Wszystkie lekcje w sekcji Podstawy
4Operatory, część 2
Operatory logiczne (AND, OR)Operatory logiczne, część 2 (NOT)Powtórka — prosta logikaLogika wektoryzowana, część 1Logika wektoryzowana, część 27Kalkulator podziału rachunku
Wiadomość powitalnaPobieranie danych od użytkownika10FizzBuzz z niespodzianką
Omówienie gryFunkcja FizzBuzz2Zmienne i typy danych
Liczbowy typ danychCałkowity typ danychZnakowy typ danychLogiczny typ danychSprawdzanie typów danychKonwencje nazewnictwaBrakujące wartości: NAPodsumowanie – tworzenie zmiennych8Pętle
Pętla forPętla whilePrzerwijNastępna iteracja (continue)Powtórka — silniaGenerowanie sekwencji (seq, :)Pętle zagnieżdżonePowtórka — dynamiczne wprowadzanie danych3Operatory, część 1
Operatory arytmetyczneDzielenie całkowite i moduloOperatory przypisaniaPowtórka — prosta matematykaOperatory porównania6Podstawowe wejście/wyjście
Wyświetlanie danychCat jako wyjścieWyjście z użyciem zmiennychOdczyt danych wejściowych za pomocą readline()Podstawy konwersji typówPowtórka — kalkulator wiekuPowtórka — prawda czy fałsz9Funkcje
Deklarowanie funkcjiArgumenty funkcjiWartości zwracanePowtórzenie — funkcja SigmaPowtórzenie — funkcja walidującaDomyślne wartości parametrówPoćwicz samodzielnie: Kompilator R online