我得到的错误就像二元运算符'/'不能应用于'Int'和'Double'类型的操作数 - 使用Swift。任何人帮我解决
var amountPaid: Int = 0
func decimalNumber() -> NSNumber? {
return amountPaid == 0 ? 0 : amountPaid / 100.0
}
答案 0 :(得分:2)
您的代码中存在多个错误。首先,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
。
答案 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
。