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

Floating point 找不到接受提供的参数的“*”的重载,floating-point,integer,double,swift,multiplication,Floating Point,Integer,Double,Swift,Multiplication,我使用toInt将字符串转换为Int。然后,我尝试将其乘以0.01,但得到一个错误,即无法为接受提供的参数的“*”找到重载。这是我的密码: var str: Int = 0 var pennyCount = 0.00 str = pennyTextField.text.toInt()! pennyCount = str * 0.01 从阅读其他帖子来看,答案似乎与类型有关。例如,如果将类型设置为整数,则会出现类似的错误。我曾尝试将类型更改为Int,但这似乎无法解决问题 我还尝试将“str”和

我使用toInt将字符串转换为Int。然后,我尝试将其乘以0.01,但得到一个错误,即无法为接受提供的参数的“*”找到重载。这是我的密码:

var str: Int = 0
var pennyCount = 0.00

str = pennyTextField.text.toInt()!
pennyCount = str * 0.01
从阅读其他帖子来看,答案似乎与类型有关。例如,如果将类型设置为整数,则会出现类似的错误。我曾尝试将类型更改为Int,但这似乎无法解决问题

我还尝试将“str”和“pennyCount”的类型设置为float和double,以及所有float、double和int的组合。我猜问题与toInt函数将字符串转换为整数有关


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

斯威夫特似乎对隐含类型转换相当挑剔,因此在您的示例中,您将str乘以0.01 a Double,以便解决错误,您需要如下转换:

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