我已经通过使用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以及FloatsDoublesInts的所有组合。我的猜测是问题与toInt()函数将String转换为Integer有关。

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

最佳答案

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

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

关于floating-point - 找不到 '*'的重载,该重载接受提供的参数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24070918/

10-17 01:35