号码操作和返回类型

时间:2014-07-31 16:54:30

标签: swift

我对在各种类型之间在Swift中执行数字操作时返回的内容感到困惑。请考虑以下事项:

var castedFoo = Float(7.0/5.0) // returns 1.39999997...

var specifiedTypeFoo:Float = 7/5.0 //returns 1.39999997...

var foo = (7/5.0) //returns 1.4

前两个与最后两个分开的是什么?它们都是返回的浮点数,那么为什么最后一个的值是四舍五入的呢?我知道第一个是铸造的,第二个明确指定为Float,但最后一个也返回Float值。那么是什么让这里有所不同呢?

1 个答案:

答案 0 :(得分:5)

根据Swift documentation

  

除非另有说明,否则浮点文字的默认类型是Swift标准库类型Double,它表示64位浮点数。

换句话说,文字5.0的类型为Double

前两个示例将结果类型设置为Float;您的上一个示例会将结果类型保留为Double,因为IntDouble的划分结果为Double。由于这种差异,最后的结果具有更高的精度。