无法将'Int'类型的值转换为预期的参数类型'Double'

时间:2016-09-30 04:39:04

标签: swift for-loop

在以下代码中,我无法弄清楚如何将Int类型的值转换为Double的预期参数类型mph = kph * 0.6214

var mph : Double!
var kph : Float!

print("KPH    MPH")

print("------------")

for kph in 60.stride(to: 130, by: 10) {
    mph = kph * 0.6214
    print("\(kph)     \(mph)")
}

如何对for进行编程以产生所需的结果?

2 个答案:

答案 0 :(得分:5)

对于Double / Int的东西,你只需要做Double(Int)*。似乎您需要使用更新版本的步幅。我相信这是正确的:

for kph in stride(from: 60, to: 130, by: 10) {
    mph = Double(kph) * 0.6214
    print("\(kph)     \(mph)")
}

*虽然你似乎未定,如果kph应该是Float或Int,而你输出的kph不是你定义为Float的kph。如果你的计划是在其他地方使用这个值,你似乎可能会遇到麻烦。

答案 1 :(得分:3)

只需将初始值声明为文字npm run build:js(添加Double

即可
.0

然后编译器将函数的类型推断为for kph in 60.0.stride(to: 130, by: 10) { 并隐式转换其他文字。