我'Float' is not convertible to 'UInt8'在Swift中使用以下公式时收到与类型相关的错误().虽然我看过有类似问题的帖子,但我似乎无法弄清楚为什么在这种情况下,首先会转换为UInt8以及如何修复类型转换错误.我是这门语言的新手.
func compoundInterest (principal p: Float, interestRate r: Float,
timesCompounded n: Int, years t: Int) -> Float {
return p * pow(1 + (r / n), n * t)
}
compoundInterest(principal: 150, interestRate: 0.05, timesCompounded: 2, years: 10)
Run Code Online (Sandbox Code Playgroud)
错误消息具有误导性,但问题是Swift不进行隐式类型转换 - 只是为了拉出表达式的一部分:
r / n
Run Code Online (Sandbox Code Playgroud)
r是浮点类型.n是整数类型.在C中,促销规则将隐含n地与浮动一致.这在Swift中不会发生.
您可能希望显式转换所有整数类型Float以解决此问题.