一尘不染

找不到接受提供的参数的“ *”重载

swift

我已经转换一个String到一个Int通过使用toInt()。然后,我尝试将其乘以0.01,但是出现一个错误,提示Could not find an overload for '*' that accepts the supplied argument.这是我的代码:

var str: Int = 0
var pennyCount = 0.00

str = pennyTextField.text.toInt()!
pennyCount = str * 0.01

通过阅读其他文章,似乎答案与类型有关。例如,如果将类型设置为Integer,则它将收到类似的错误。我尝试将类型更改为Int,但这似乎无法解决问题。

我也曾尝试设置“海峡”和“pennyCount”作为类型FloatsDoubles和的所有组合FloatsDoublesInts。我的猜测是问题与toInt()函数将a转换String为an有关Integer

有人可以帮忙弄清楚问题可能是什么吗?


阅读 295

收藏
2020-07-07

共1个答案

一尘不染

Swift对于隐式类型转换似乎有些挑剔,因此在您的示例中,您将str(一个整数)乘以0.01(一个Double),因此要解决该错误,您需要像这样进行转换:

var str: Int = 0
var pennyCount = 0.00
str = pennyTextField.text.toInt()!
pennyCount = Double(str) * 0.01
2020-07-07