二进制运算符'/'不能应用于'Int'和'Double'类型的操作数

时间:2018-04-18 13:02:30

标签: swift

我得到的错误就像二元运算符'/'不能应用于'Int'和'Double'类型的操作数 - 使用Swift。任何人帮我解决

var amountPaid: Int = 0

func decimalNumber() -> NSNumber? {
        return amountPaid == 0 ? 0 : amountPaid / 100.0
    }

3 个答案:

答案 0 :(得分:2)

您的代码中存在多个错误。首先,amountPaidInt(无小数位),而100.0Double(带小数位)。要划分它们,它们必须属于同一类型。其次,你的函数需要返回NSNumber?但你没有这样做。使用此代码:

var amountPaid: Int = 0

func decimalNumber() -> NSNumber? {
    return amountPaid == 0 ? 0 : Double(amountPaid) / 100.0 as NSNumber
}

使用Double(amountPaid)会将amountPaid转换为Double,以便100.0进行分割,as NSNumber将返回正确的类型。

此外,amountPaid ==是不必要的,因为0.0 / 100.0无论如何0

答案 1 :(得分:1)

您可能有两种方式:

First Int to Double:

Double(yourIntValue)

使用

var amountPaid: Int = 0

func decimalNumber() -> NSNumber? {
    return amountPaid == 0 ? 0 : Double(amountPaid) / 100.0
}

第二个选项:

Double to Int

Int(yourDoubleValue)

使用

var amountPaid: Int = 0

    func decimalNumber() -> NSNumber? {
            return amountPaid == 0 ? 0 : amountPaid / Int(100.0)
        }

以您喜欢的方式使用它:

答案 2 :(得分:0)

引自this post

  

必须明确表示整数和浮点数字类型之间的转换

您试图将int除以double,从而隐式地将int转换为double。将分部更改为100而不是100.0,或将amountPaid的数据类型更改为double