【问题标题】:Adding a Decimal Point button to the calculator app将小数点按钮添加到计算器应用程序
【发布时间】:2019-07-21 16:13:46
【问题描述】:

有人可以将代码添加到此,以便我可以添加小数点按钮吗?

这是我目前所拥有的,有人可以填写小数点按钮所需的代码吗?所以我可以从中学习。请查看代码并告诉我您的想法。

import UIKit

class ViewController: UIViewController {

    var numberOnScreen:Double = 0;
    var previousNumber:Double = 0;
    var preformingMath = false
    var operation = 0;

    @IBOutlet weak var label: UILabel!

    @IBAction func numbers(_ sender: UIButton)
    {
        if preformingMath == true
        {
            label.text = String(sender.tag-1)
            numberOnScreen = Double(label.text!)!
            preformingMath = false
        }
        else
        {
            label.text = label.text! + String(sender.tag-1)
            numberOnScreen = Double(label.text!)!
        }
    }


    @IBAction func buttons(_ sender: UIButton)
    {
        if label.text != "" && sender.tag != 11 && sender.tag != 16
        {
            previousNumber = Double(label.text!)!

            if sender.tag == 12 //Divide
            {
                label.text = "/";
            }
            else if sender.tag == 13//Multiply
            {
                label.text = "x";
            }
            else if sender.tag == 14 //Minus
            {
                label.text = "-";
            }
            else if sender.tag == 15 //Plus
            {
                label.text = "+";
            }
            operation = sender.tag;
            preformingMath = true;
        }
        else if sender.tag == 16
        {
            if operation == 12
            {
                label.text = String(previousNumber / numberOnScreen)
            }
            else if operation == 13
            {
                label.text = String(previousNumber * numberOnScreen)
            }
            else if operation == 14
            {
                label.text = String(previousNumber - numberOnScreen)
            }
            else if operation == 15
            {
              label.text = String(previousNumber + numberOnScreen)
            }
        }
        else if sender.tag == 11
        {
            label.text = ""
            previousNumber = 0;
            numberOnScreen = 0;
            operation = 0;
        }
    }

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.
    }


}

【问题讨论】:

  • 试一试。如果performingMathtrue,则将label.text 设置为"0.",否则将"." 附加到label.text(如果它没有小数点)。然后将numberOnScreen 更新为Double(label.text!)!
  • 使用if label.text.contains(".") { } 测试是否已经有小数。
  • 在 Swift 中不需要尾随分号 ;。测试Bool 时,无需与true 进行比较。只需使用Bool:例如if performingMath { }
  • 你能把我的代码截图发给我吗?我仍然没有运气。谢谢
  • 查看我发布的答案。

标签: swift calculator


【解决方案1】:

将此@IBAction 添加到您的代码中并将其连接到您的. 按钮。

  • 如果用户在任何数字之前按.,则显示将设置为0.
  • 如果显示中有数字,如果数字中还没有小数点,则 . 将附加到显示中。
  • 最后,numberOnScreen 将会更新。

    @IBAction func decimal(_ sender: UIButton) {
        if preformingMath || label.text!.isEmpty
        {
            label.text = "0."
            preformingMath = false
        }
        else
        {
            if !label.text!.contains(".") {
                label.text = label.text! + "."
            }
        }
        numberOnScreen = Double(label.text!)!
    }    
    

【讨论】:

  • 问题,使用这段代码除了我想写 2.3 之外,它都可以工作...只要我按下小数点按钮,它就会重置为 0....但是如果我按下0.2 例如以 0 开头的总和有效吗?有什么想法吗?
  • 它对我有用。您的代码中必须有一些不同的东西。您能否在问题中添加一个包含所有代码的新部分,我会看一下。
  • 我在上面更新了我当前的代码,请尽快回复我
  • 所以,如果你点击清除,然后2.你的显示器显示0.?
  • 您的代码对我有用。您需要更好地描述如何准确地重现您的问题。以 CLEAR 开头以显示问题的最少击键次数是多少?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-01-10
  • 1970-01-01
相关资源
最近更新 更多