在Swift中,有3种通用浮点类型:
但是也有2个别名:
这是一个代码:
/**/
// 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中使用这两个别名的原因是什么?
它们是干什么的?
答案 0 :(得分:1)
Normal Float是32bits,所以Float是Float32的简单版本。 但是ram中Double和Float64的初始类型非常不同,您不能仅仅通过它们的指数和有效位进行比较。
答案 1 :(得分:1)
Float64
是Double
的类型别名,因此它们是同一类型。与Float32
和Float
相同。
名称Float
和Double
(或float
和double
)是较旧的名称,在许多其他语言中使用,包括C,C ++,Java和C#。
[在某些(异国情调或非常旧的)平台上的某些语言中,它们甚至都不是32位和64位。但这对Swift来说无关紧要。]
较新的名称Float32
,Float64
和Float80
会告诉您类型的确切大小,因此更清晰,模棱两可。但是对于长期的程序员来说,他们需要一些习惯。我不确定Float80是否可在64位平台上使用。