我已经转换一个String到一个Int通过使用toInt()。然后,我尝试将其乘以0.01,但是出现一个错误,提示Could not find an overload for '*' that accepts the supplied argument.这是我的代码:
String
Int
toInt()
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”作为类型Floats和Doubles和的所有组合Floats,Doubles和Ints。我的猜测是问题与toInt()函数将a转换String为an有关Integer。
Floats
Doubles
Ints
Integer
有人可以帮忙弄清楚问题可能是什么吗?
Swift对于隐式类型转换似乎有些挑剔,因此在您的示例中,您将str(一个整数)乘以0.01(一个Double),因此要解决该错误,您需要像这样进行转换:
var str: Int = 0 var pennyCount = 0.00 str = pennyTextField.text.toInt()! pennyCount = Double(str) * 0.01