Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 向计算器应用程序添加小数点按钮_Swift_Calculator - Fatal编程技术网

Swift 向计算器应用程序添加小数点按钮

Swift 向计算器应用程序添加小数点按钮,swift,calculator,Swift,Calculator,有人能帮我添加代码,这样我就可以添加一个小数点按钮了吗 这是我到目前为止所拥有的,请有人填写小数点按钮所需的代码。所以我可以从中学习。请查看代码并让我知道您的想法 import UIKit class ViewController: UIViewController { var numberOnScreen:Double = 0; var previousNumber:Double = 0; var preformingMath = false var ope

有人能帮我添加代码,这样我就可以添加一个小数点按钮了吗

这是我到目前为止所拥有的,请有人填写小数点按钮所需的代码。所以我可以从中学习。请查看代码并让我知道您的想法

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.
    }


}

将此
@iAction
添加到代码中,并将其挂接到
按钮上

  • 如果用户在任何数字之前按
    ,显示屏将设置为
    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!)!
    }    
    

试试看。如果
performingMath
true
,则将
label.text
设置为
“0.”
,否则,如果
label.text没有小数,则将
追加到
label.text
。然后用
Double(label.text!)更新
numberOnScreen
。使用
if label.text.contains(“.”{}
测试是否已经有小数。不需要尾随分号
在Swift中。测试
Bool
时,无需与
true
进行比较。只需使用
Bool
:例如
if performingMath{}
。你能给我发一张我的代码截图吗?我还是不走运。谢谢我贴出的答案。问题是,这段代码除了在我想写2.3。。。只要我按下十进制按钮,它就会重置为0。。。但是如果我按0.2,比如从0开始求和,它能工作吗?有什么想法吗?对我来说很有用。您的代码中必须有不同的内容。你能给你的问题添加一个新的部分,包括你的所有代码吗?我会看一下。我在上面更新了我的当前代码,如果你点击清除,尽快给我回电话,然后
2
你的屏幕显示为
0.
?你的代码对我有效。你需要给我一个更好的描述如何准确地再现你的问题。以CLEAR开头的最小击键数是多少?