无法找到接受所提供参数的'*'的重载

fai*_*dan 9 floating-point double integer multiplication 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
Run Code Online (Sandbox Code Playgroud)

从阅读其他帖子看,答案似乎与该类型有关.例如,如果将类型设置为Integer,则会出现类似的错误.我已经尝试将类型更改为Int,但这似乎无法解决问题.

我也曾尝试设置"海峡"和"pennyCount"作为类型FloatsDoubles和的所有组合Floats,DoublesInts.我的猜测是问题与toInt()函数转换为a String有关Integer.

有人可以帮助澄清问题所在吗?

joh*_*lem 13

Swift似乎对隐含类型转换相当挑剔,所以在你的例子中你将str(一个整数)乘以0.01(一个Double)所以为了解决错误,你需要像这样抛出它:

var str: Int = 0
var pennyCount = 0.00
str = pennyTextField.text.toInt()!
pennyCount = Double(str) * 0.01
Run Code Online (Sandbox Code Playgroud)