1

当我从教程中做示例时,我从常量变量主题中得到了一些问题。

如果有人解释我的例子,我将不胜感激。

在此处输入图像描述

4

1 回答 1

1

当您不指定类型时,浮点数文字将被推断为 type Double

Double,顾名思义,比 具有双倍精度Float。所以当你这样做时:

let a = 64.1

内存中的实际值可能类似于 64.099999999999991。由于Double仅显示 16 位有效数字,因此显示 64.09999999999999,将最后一个“1”四舍五入。

为什么let b: Float = 64.1显示正确的数字?

当您指定浮点类型时,精度会降低。Float仅显示 8 位有效数字。那是 64.099999,但紧随其后的是一个“9”,所以它四舍五入得到 64.1。

这与显式声明变量类型无关。尝试将其指定为Double

let b: Double = 64.1

它仍将显示 64.09999999999999。

于 2017-06-02T07:15:12.490 回答