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

时间:2014-06-05 22:02:54

标签: floating-point integer double swift multiplication

我已使用StringInt转换为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,但这似乎无法解决问题。

我还尝试将'str'和'pennyCount'的类型设置为FloatsDoubles以及FloatsDoubles和{{1}的所有组合}}。我的猜测是问题与Ints函数将toInt()转换为String有关。

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

1 个答案:

答案 0 :(得分:13)

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

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