二元运算符“*”不能应用于 'Double' 和 'Int' 类型的操作数
Binary operator '*' cannot be applied to operands of type 'Double' and 'Int'
我在这个网站上尝试了一些解决方案,但找不到一个。
我一直在使用这行代码时遇到此错误:
func futureValue() {
let interest = Double(interestInput.text!) ?? 0
let pv = Double(pvInput.text!) ?? 0
let years = Double(yearsInput.text!) ?? 0
let result = pv * (1.0 + interest) ^^ years
}
result
变量是我收到错误的地方。我做错了什么?
为了回答这个问题,为 Int
而不是 Double
设置了自定义 ^^
运算符。
这是不正确的:
}
precedencegroup PowerPrecedence { higherThan: MultiplicationPrecedence }
infix operator ^^ : PowerPrecedence
func ^^ (radix: Int, power: Int) -> Int {
return Int(pow(Double(radix), Double(power)))
这是正确的方式,匹配futureValue()
函数中的Double
:
}
precedencegroup PowerPrecedence { higherThan: MultiplicationPrecedence }
infix operator ^^ : PowerPrecedence
func ^^ (radix: Double, power: Double) -> Double {
return Double(pow(Double(radix), Double(power)))
}
我在这个网站上尝试了一些解决方案,但找不到一个。
我一直在使用这行代码时遇到此错误:
func futureValue() {
let interest = Double(interestInput.text!) ?? 0
let pv = Double(pvInput.text!) ?? 0
let years = Double(yearsInput.text!) ?? 0
let result = pv * (1.0 + interest) ^^ years
}
result
变量是我收到错误的地方。我做错了什么?
为了回答这个问题,为 Int
而不是 Double
设置了自定义 ^^
运算符。
这是不正确的:
}
precedencegroup PowerPrecedence { higherThan: MultiplicationPrecedence }
infix operator ^^ : PowerPrecedence
func ^^ (radix: Int, power: Int) -> Int {
return Int(pow(Double(radix), Double(power)))
这是正确的方式,匹配futureValue()
函数中的Double
:
}
precedencegroup PowerPrecedence { higherThan: MultiplicationPrecedence }
infix operator ^^ : PowerPrecedence
func ^^ (radix: Double, power: Double) -> Double {
return Double(pow(Double(radix), Double(power)))
}