【发布时间】:2018-01-17 11:13:58
【问题描述】:
我有一个名为 BillSplitter 的简单应用程序,它可以计算要显示的账单:输入文本字段以显示用餐者人数、账单总额和小费... 当我运行应用程序时,grandTotal 输出无法正确计算...总数和小费不计算。
我的应用有 3 个 UITextfields 用餐人数、总用餐费用和小费。当我运行应用程序并在 3 个字段中输入数据并计算我的总计是正确的。例如,如果我输入。 2 位用餐者,晚餐费用为 60 美元,小费 10%。结果如下:用餐人数:2,小费金额$6.00,账单金额:$60.00,总计$70,每位用餐者支付$30。我应该得到的是总计 66 美元,每位用餐者支付 33 美元。
我的代码:
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var dinersTextField: UITextField! // number of diners
@IBOutlet weak var totalCostTextField: UITextField! // bill total before
@IBOutlet weak var resultTextLabel: UILabel! // displays output of calculation
@IBOutlet weak var tipTextField: UITextField! // the tip
override func viewDidLoad() {
super.viewDidLoad()
}
@IBAction func calculate(_ sender: Any) {
if let dinerStr = dinersTextField.text, let tipStr = tipTextField.text, let totalStr = totalCostTextField.text, let diner = Double(dinerStr), let tip = Double(tipStr), let total = Double(totalStr) {
let formattedDiners = String(format: "%.0f", diner)
let formattedCost = String(format: "%.2f", total)
let formattedTip = String(format: "%.2f", (total * tip) / 100)
let formattedGTotal = String(format: "%.2f", (total + tip))
let formattedDinerPays = String(format: "%.2f", (total / diner))
resultTextLabel.text = "The number of diners: \(formattedDiners)\nAmount of Tip: $\(formattedTip)\nAmount of bill: $\(formattedCost)\nGrand Total: $\(formattedGTotal)\nEach diner pays: $\(formattedDinerPays)"
}
}
/// hide keyboard
@IBAction func dismissKeyboard(_ sender: Any) {
view.endEditing(true)
}
}
【问题讨论】:
-
请在问题中发布您的代码,而不是代码图片。
-
因不清楚而结束
-
你的意思是不计算?为了使您的问题被视为主题,请在您的问题中包含预期的和实际的行为。一些示例输入/输出也会有所帮助。
-
添加断点和调试以检查假定值
-
我的应用有 3 个 UITextfields 用餐者人数、总餐费和小费。当我运行应用程序并在 3 个字段中输入数据并计算我的总计是正确的。例如,如果我输入。 2 位用餐者,晚餐费用为 60 美元,小费 10%。结果如下:用餐人数:2,小费金额$6.00,账单金额:$60.00,总计$70,每位用餐者支付$30。我应该得到的是总计 66 美元,每位用餐者支付 33 美元。希望这会有所帮助。