Menu
CoddyTech

Đầu ra có định dạng (sprintf)

Thuộc phần Kiến thức nền tảng trong hành trình R của Coddy. Bài học 37 trên 78.

challenge icon

Thử thách

Dễ

Trong bài học trước, bạn đã hoàn thành Máy tính chia hóa đơn với tất cả các phép tính. Bây giờ, hãy cải thiện định dạng đầu ra bằng cách dùng sprintf() để hiển thị giá trị tiền tệ với chính xác 2 chữ số thập phân.

Sửa các dòng đầu ra hiển thị số tiền đô la để dùng sprintf() định dạng. Hàm (function) sprintf() cho phép bạn định dạng số với số chữ số thập phân cụ thể bằng cách dùng %.2f cho 2 chữ số thập phân.

Cập nhật các dòng đầu ra sau để hiển thị chính xác 2 chữ số thập phân cho mọi giá trị tiền tệ:

  • Bill: $[bill]
  • Tip amount: $[tip_amount]
  • Total with tip: $[total]
  • Each person pays: $[per_person]

Giữ nguyên phép tính số học như trong bài học trước: tip_amount <- bill * tip_percent / 100. Nhân với tip_percent / 100 thay vào đó có thể tạo ra chênh lệch một xu khi làm tròn số đến hai chữ số thập phân.

Dùng sprintf() để định dạng từng giá trị tiền tệ. Ví dụ, sprintf("%.2f", value) định dạng một số thành 2 chữ số thập phân.

Ví dụ, nếu đầu vào là 85.50, 18 và 3, đầu ra đầy đủ sẽ là:

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

Lưu ý: Phần trăm tiền boa và số người nên giữ nguyên là số nguyên, không định dạng phần thập phân.

Tự làm thử

# 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 = "")

Tất cả bài học trong Kiến thức nền tảng

Tự luyện tập: Trình biên dịch R online