在Swift中有3种通用的浮点类型
,但也有两个别名
下面是一个代码:
/**/
// Float 16-bit
Float16.exponentBitCount // 5
Float16.significandBitCount // 10
// 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中使用这两个别名的原因是什么?
它们是干什么用的?
发布于 2019-05-12 02:23:48
Float64是Double的类型别名,所以它们是相同的类型。Float32和Float也是如此。
名称Float和Double (或float和double)是较旧的名称,用于许多其他语言,包括C、C++、Java和C#。
在一些语言(异国情调或非常古老的)平台上,他们甚至不是32位和64位。但这对斯威夫特来说并不重要。
较新的名称Float32、Float64和Float80告诉您该类型的确切大小,因此更加清晰和不那么含糊。但在很长一段时间里,程序员需要一些习惯。我不确定Float80是否在64位平台上可用。
发布于 2019-05-11 19:45:31
普通的浮点数是32位,所以浮点数是Float32的简单版本。但是,ram中的Double和Float64的炉子类型是非常不同的,你不能仅仅用它们的指数和重要位来比较它们。
https://stackoverflow.com/questions/56078703
复制相似问题