为什么Swift默认为双浮点?

Jac*_*mes 2 type-inference swift

斯威夫特语言指南说:

Double表示64位浮点数.当浮点值必须非常大或特别精确时使用它.

Float表示32位浮点数.当浮点值不需要64位精度时使用它.

但后来:

当推断浮点数的类型时,Swift总是选择Double(而不是Float).

这不是一个矛盾吗?对于大多数浮点数,64位精度不会过高吗?这是否意味着我应该明确定义Float数字,或者差异在实践中不重要?

Gab*_*lla 10

默认为Double保证类型推断不会导致浮点精度错误.

默认Float会在某些情况下造成麻烦,所以我会说这是一个保守的选择.

我没有硬数字来支持我的说法,但我怀疑这也是因为表现差异不那么重要.