3.2 浮点数

Go具有两种大小的浮点数float32和float64。其算术特性遵从IEEE 754标准,所有新式CPU都支持该标准。

这两个类型的值可从极细微到超宏大。math包给出了浮点值的极限。常量math.MaxFloat32是float32的最大值,大约为3.4e38,而math.MaxFloat64则大约为1.8e308。相应地,最小的正浮点值大约为1.4e-45和4.9e-324。

十进制下,float32的有效数字大约是6位,float64的有效数字大约是15位。绝大多数情况下,应优先选用float64,因为除非格外小心,否则float32的运算会迅速累积误差。另外,float32能精确表示的正整数范围有限:

在源码中,浮点数可写成小数,如:

小数点前的数字可以省略(.707),后面的也可省去(1.)。非常小或非常大的数字最好使用科学记数法表示,此方法在数量级指数前写字母e或E:

浮点值能方便地通过Printf的谓词%g输出,该谓词会自动保持足够的精度,并选择最简洁的表示方式,但是对于数据表,%e(有指数)或%f(无指数)的形式可能更合适。这三个谓词都能掌控输出宽度和数值精度。 ...

Get Go程序设计语言 now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.