xcode - 如何将 double 值等同于字符串标签? (这是我在 xcode Swift 中构建的计算器应用程序)

标签 xcode swift double calculator

//
//  ViewController.swift
//  Arithmetic Calculator
//
//  Created by Mapondera, Tanaka on 10/7/15.
//  Copyright (c) 2015 Mapondera, Tanaka. All rights reserved.
//

import UIKit

class ViewController: UIViewController {

    @IBOutlet weak var calculatorDisplay: UILabel!

    var isEnteredNumber = false
    var firstNumber:Double = 0.0
    var secondNumber:Double = 0.0
    var operation = ""
    var result:Double = 0.0

    @IBAction func numberPunched(sender: AnyObject) {
        // number
        var number = sender.currentTitle

        if isEnteredNumber {
            calculatorDisplay.text = calculatorDisplay.text! + number!!
        } else {
            calculatorDisplay.text = number
            isEnteredNumber = true
        }
    }

    @IBAction func calculationPunched(sender: AnyObject) {
        // operation
        isEnteredNumber = false


firstNumber = calculatorDisplay.text?

//上面这一行有一个错误代码,内容为“无法将字符串类型的值分配给 double 类型的值”...?

 operation = sender.currentTitle!!
    }

    @IBAction func equalsPunched(sender: AnyObject) {
        // equals
        isEnteredNumber = false
        var result = 0.0


secondNumber = calculatorDisplay.text?

//上面一行的错误代码“?后面必须跟调用、成员查找或 subcrpit”...?

        if operation == "+" {
            result = firstNumber + secondNumber
        } else if operation == "-" {
            result = firstNumber - secondNumber
        } else if operation == "x" {
            result = firstNumber * secondNumber
        } else if operation == "/" {
            result = firstNumber / secondNumber
        } /*else if operation == "^" {
            result = pow(firstNumber, secondNumber)
        }*/
        calculatorDisplay.text = "\(result)"
    }

    @IBAction func changeSignPunched(sender: AnyObject) {
        isEnteredNumber = false


firstNumber = calculatorDisplay.text?

//上面的行有一个错误代码,内容为“?后面必须跟调用、成员查找或 subscrpit”...?

result = firstNumber * (-1)
        calculatorDisplay.text = "\(result)"
    }

    @IBAction func clearPunched(sender: AnyObject) {
        firstNumber = 0
        secondNumber = 0
        isEnteredNumber = false
        result = 0
        calculatorDisplay.text = "\(result)"
    }

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }
}

最佳答案

您正在尝试将字符串值分配给已声明为 Double 的变量。对于给您带来错误的行,尝试这样的操作:

let firstNumberString = calculatorDisplay.text ?? ""
firstNumber = Double(firstNumberString) ?? 0.0

上面的??称为nil合并运算符。它将在左侧解开可选值或在右侧返回默认值。

关于xcode - 如何将 double 值等同于字符串标签? (这是我在 xcode Swift 中构建的计算器应用程序),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33030386/

相关文章:

generics - 在 Swift 中获取泛型类型的名称(字符串)

iphone - ios 游戏中心提交时间并在排行榜中显示

double - 扩展的 double

ios - Kotlin Multiplatform 中 iOS 应用程序的不同架构

iphone - 当我触摸 UIVIew 时,CALayer/UIView 崩溃

ios - 用于检查所有文本字段的验证类

bash - bash 中数字的表示和 bash 中十六进制数的 printf

ios - iPhone 不可用。请重新连接设备。/iOS 14.2 - Xcode 12.1

ios - 调度组未按预期工作

ios - 如何在字典循环中获取键、值和索引?