二元运算符“*”不能应用于 '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)))
}