Double表示64位浮点数.当浮点值必须非常大或特别精确时,请使用它.Float表示32位浮点数.当浮点值不需要64位精度时使用它.
但后来:
斯威夫特在推断浮点数类型时总是选择
Double(而不是Float) .
这不是有点矛盾吗?对于大多数浮点数字来说,64位的精度不是太高了吗?这是否意味着我应该明确地定义浮点数,或者这种区别在实践中并不重要?
发布于 2014-06-17 13:00:20
默认为Double可以保证类型推断不会导致浮点精度错误。
在某些情况下,默认使用Float会带来麻烦,所以我认为这是一个保守的选择。
我没有确凿的数字来支持我的说法,但我怀疑这也是有道理的,因为性能上的差异并不是那么重要。
发布于 2014-06-17 13:44:25
为什么可以将浮点数推断为Double:
1)许多其他语言如JAVA和Haskell推断浮点为Double
2) Double具有较高的精度,保证了精度的不丢失。他们已经决定保持精度,而不是使用Float时可能出现的性能改进(内存更低)。
https://stackoverflow.com/questions/24264360
复制相似问题