一尘不染

如何在Swift中的int和float之间进行算术运算?

swift

这是我在Swift编程中的第一天,到现在为止,我们一直在使用ObjectiveC。喜欢,

var i = 10
var j = 10
var k = i + j
println(k)

但是,当我将其中一个值更改为float时,会出现错误。

var i = 10
var j = 10.4
var k = i + j
println(k)

错误:main.swift:13:11:找不到接受提供的参数的’+’的重载

现在,我进行了Google搜索,并尝试了一些尝试,例如Double(i+j),但是它不起作用。Swift在这种情况下应该将int隐式转换为float,不是吗?

如果我在理解Swift语言时遇到任何错误,请提出建议。


阅读 859

收藏
2020-07-07

共1个答案

一尘不染

根据您想要的结果,应使用该类型的init方法将其转换为适当的类型。

例如。

var myInt = 5;
var myDouble = 3.4;

如果我想在结果中加倍

var doubleResult = Double(myInt) + myDouble;

如果我想要一个整数来代替,请注意双精度将被截断。

var intResult = myInt + Int(myDouble)

我在您的示例中看到的问题是,您正在尝试执行加法运算,然后将其转换,但是在执行加法运算之前,两个值必须相同。

苹果已经对其安静进行了严格的规定,以避免类型不匹配和转换错误。有时候对于来自其他语言的开发人员来说,这可能有点“过于严格”,一开始让我很烦,但是我已经习惯了。

2020-07-07