Go语言浮点型(小数类型)

Go语言浮点型教程

Go 语言 中的浮点类型是用于存放小数的。Go 语言浮点类型提供了两种精度的浮点数,float32 和 float64。Go 语言 整数类型 可以分为有符号整数和无符号整数两大类型,但 Go 语言浮点类型不支持无符号类型。

Go语言浮点型精度

一个 float32 类型的浮点数可以提供大约 6 个十进制数的精度,而 float64 则可以提供约 15 个十进制数的精度。

通常应该优先使用 float64 类型,因为 float32 类型的累计计算误差很容易扩散,并且 float32 能精确表示的正整数并不是很大。

因为 float32 的有效 bit 位只有 23 个,其它的 bit 位用于指数和符号,所以当整数大于 23 bit 能表达的范围时,float32 的表示将出现误差。

Go 语言浮点型表示的数值在很小或很大的时候最好用科学计数法书写,通过 e 或 E 来指定指数部分。

Go语言浮点型取值范围

数据类型 最大值 常量
float32 3.4e38 math.MaxFloat32
float64 1.8e308 math.MaxFloat64

案例

浮点型类型

Go 语言浮点型可以使用科学计数法的形式表示

package main import "fmt" func main() { fmt.Println("Hello 嗨客网(www.haicoder.net)") var score float32 = -1.1 var temp float64 = 12.2e10 fmt.Print("Score = ", score, " Temp = ", temp) }

程序运行后,控制台输出如下:

35 golang float64.png

我们定义了一个 float32 类型的变量 score,并给其赋初值为 -1.1。接着我们定义了一个 float64 类型的变量 temp,并且使用科学计数法的形式给其赋初值。

浮点类型最大值

Go 语言中的浮点类型的最大值常量定义在 Math 包

package main import ( "fmt" "math" ) func main() { fmt.Println("Hello 嗨客网(www.haicoder.net)") var float32Max = math.MaxFloat32 var float64Max = math.MaxFloat64 fmt.Print("Float32Max = ", float32Max, " Float64Max = ", float64Max) }

程序运行后,控制台输出如下:

36 golang float64.png

我们使用 math.MaxFloat32 常量打印出了 float32 类型的最大值。使用 math.MaxFloat64 常量打印出了 float64 类型的最大值。

Go语言浮点型总结

Go 语言提供了两种精度的浮点数,float32 和 float64。Go 语言整数类型可以分为有符号整数和无符号整数两大类型,但 Go 语言浮点类型不支持无符号类型。

Go 语言浮点型表示的数值在很小或很大的时候最好用科学计数法书写,通过 e 或 E 来指定指数部分。