Đầ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.
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.63Lư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
4Toán tử phần 2
Toán tử logic (AND, OR)Toán tử logic phần 2 (NOT)Ôn tập: logic đơn giảnLogic vector hóa phần 1Logic vector hóa phần 27Máy tính chia hóa đơn
Thông báo chào mừngNhận đầu vào từ người dùng2Biến và kiểu dữ liệu
Kiểu dữ liệu sốKiểu dữ liệu số nguyênKiểu dữ liệu ký tựKiểu dữ liệu logicKiểm tra kiểu dữ liệuQuy tắc đặt tênGiá trị thiếu: NATóm tắt: tạo biến8Vòng lặp
Vòng lặp forVòng lặp whileBreakNext (continue)Ôn tập: giai thừaTạo dãy (seq, :)Vòng lặp lồng nhauÔn tập: đầu vào động3Toán tử phần 1
Toán tử số họcPhép chia lấy phần nguyên và phép moduloToán tử gánÔn tập: phép tính đơn giảnToán tử so sánh6Nhập xuất cơ bản
In đầu raDùng cat để in đầu raĐầu ra với biếnĐọc đầu vào bằng readline()Cơ bản về chuyển đổi kiểuÔn tập: máy tính tuổiÔn tập: đúng hay sai9Hàm
Khai báo hàmĐối số hàmGiá trị trả vềÔn tập: hàm SigmaÔn tập: hàm xác thựcGiá trị tham số mặc địnhTự luyện tập: Trình biên dịch R online