我收到错误,例如二进制运算符"/"无法应用于类型"Int"和"Double"的操作数 - 使用 Swift。有人帮我修复
var amountPaid: Int = 0
func decimalNumber() -> NSNumber? {
return amountPaid == 0 ? 0 : amountPaid / 100.0
}
代码中存在多个错误。首先,amountPaid
是Int
(没有小数位(,而100.0
是Double
(有小数位(。要划分它们,它们必须是同一类型。其次,你的函数需要返回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
。