Float32(Float的别名)和Float64(Double的别名)有什么作用?

时间:2019-05-10 13:26:35

标签: swift floating-point double

在Swift中,有3种通用浮点类型

  • 浮动
  • Double
  • Float80

但是也有2个别名

  • Float32
  • Float64

这是一个代码:

/**/

// Float 32-bit
Float.exponentBitCount                   //  8
Float.significandBitCount                //  23

// Alias for Float
Float32.exponentBitCount                 //  8
Float32.significandBitCount              //  23

// Float 64-bit
Double.exponentBitCount                  //  11
Double.significandBitCount               //  52

// Alias for Double
Float64.exponentBitCount                 //  11
Float64.significandBitCount              //  52

// Extended-Precision Float
Float80.exponentBitCount                 //  15
Float80.significandBitCount              //  63

/**/

问题:在Swift中使用这两个别名的原因是什么?

它们是干什么的?

2 个答案:

答案 0 :(得分:1)

Normal Float是32bits,所以Float是Float32的简单版本。 但是ram中Double和Float64的初始类型非常不同,您不能仅仅通过它们的指数和有效位进行比较。

答案 1 :(得分:1)

Float64Double的类型别名,因此它们是同一类型。与Float32Float相同。

名称FloatDouble(或floatdouble)是较旧的名称,在许多其他语言中使用,包括C,C ++,Java和C#。

[在某些(异国情调或非常旧的)平台上的某些语言中,它们甚至都不是32位和64位。但这对Swift来说无关紧要。]

较新的名称Float32Float64Float80会告诉您类型的确切大小,因此更清晰,模棱两可。但是对于长期的程序员来说,他们需要一些习惯。我不确定Float80是否可在64位平台上使用。