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

9

我使用 toInt() 将一个 String 转换为 Int。然后,我尝试将其乘以 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”的类型设置为浮点数和双精度浮点数,并尝试了所有浮点数、双精度浮点数和整数的组合。我猜问题可能与 toInt() 函数将 String 转换为 Integer 有关。
请问有人能帮忙澄清问题所在吗?
1个回答

13

Swift 对隐式类型转换比较挑剔,所以在您的示例中,您正在将 str(一个整数)乘以 0.01(一个双精度浮点数)。为了解决错误,您需要像这样进行强制转换:

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接