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



我收到错误,例如二进制运算符"/"无法应用于类型"Int"和"Double"的操作数 - 使用 Swift。有人帮我修复

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

代码中存在多个错误。首先,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的。

有两种

方法:

第一个国际到双倍:

Double(yourIntValue)

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

第二种选择:

双倍到国际

Int(yourDoubleValue)

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

以您喜欢的任何方式使用它:

引用

这篇文章:

整数和浮点数值类型之间的转换必须显式进行

您正在尝试将 int 除以 double,从而隐式地从 int 转换为 double。将除法更改为 100 而不是100.0,或者将amountPaid的数据类型更改为 double

最新更新