[英]'Float' is not convertible to 'UInt8' in Swift
在Swift中使用以下公式时,我收到与类型相关的错误( 'Float' is not convertible to 'UInt8'
)。 尽管我看到过类似问题的帖子,但似乎无法弄清楚为什么在这种情况下首先发生了到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)
错误消息具有误导性,但问题是Swift不会进行隐式类型转换-只是将表达式的一部分提取出来:
r / n
r
是浮点类型。 n
是整数类型。 在C中,晋升规则将隐式地使n
等于浮点数。 在Swift中不会发生这种情况。
您可能需要将所有整数类型显式转换为Float
才能解决此问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.