一、数据类型概要
go语言中有四种数据类型:基础类型,复合类型,引用类型,接口类型。
| 类型 | 名称 | 长度 | 零值 | 说明 | 
|---|---|---|---|---|
| bool | 布尔类型 | 1 | false | 其值不为真即为假,不可以用数字代表true或false | 
| byte | 字节型 | 1 | 0 | uint8别名 | 
| rune | 字符类型 | 4 | 0 | 专用于存储unicode编码,等价于uint32 | 
| int, uint | 整型 | 4或8 | 0 | 有符号32位或无符号64位 | 
| int8 | 整型 | 1 | 0 | -128~ 127, | 
| uint8 | 整型 | 1 | 0 | 0~ 255 | 
| int16 | 整型 | 2 | 0 | -32768 ~ 32767, | 
| uint16 | 整型 | 2 | 0 | 0 ~ 65535 | 
| int32 | 整型 | 4 | 0 | -2147483648到2147483647 | 
| uint32 | 整型 | 4 | 0 | 0到4294967295(42亿) | 
| int64 | 整型 | 8 | 0 | -9223372036854775808到9223372036854775807 | 
| uint64 | 整型 | 8 | 0 | 0到18446744073709551615 ( 1844京) | 
| float32 | 浮点型 | 4 | 0.0 | 小数位精确到7位 | 
| float64 | 浮点型 | 8 | 0.0 | 小数位精确到15位 | 
| complex64 | 复数类型 | 8 | ||
| complex128 | 复数类型 | 16 | 64位实数和虚数 | |
| uintptr | 整型 | 4或8 | 足以存储指针的uint32或uint64整数 | |
| strina | 字符串 | "” | utf-8字符串 | 
二、浮点型
在Go语言中提供了两种精度的浮点型:float32和float64。
- float32 的浮点数最大值约为 3.4e38, 可以通过 match包的方法来获取: match.MaxFloat32。
 - float64 的浮点数最大值约为 1.8e308, 可以通过 match包的方法来获取: match.MaxFloat64。
 
float32精确到小数点后7位,float64精确到小数点后15位。由于在Go中涉及到关于数学运算的包中,都要求使用float64这个类型。因为一个float32类型的浮点数可以提供大约6个十进制数的精度,而float64则可以提供约15个十进制数的精度;通常应该优先使用float64类型,因为float32类型的累计计算误差很容易扩散,并且float32能精确表示的正整数并不是很大(注意:因为float32的有效bit位只有23个,其它的bit位用于指数和符号;当整数大于23bit能表达的范围时,float32的表示将出现误差):
案例:
package main
import (
    "fmt"
    "math"
)
func main()  {
    // 打印默认宽度和精度的圆周率, \n 为换行符 
    fmt.Printf("%f\n", math.Pi)
    // 打印默认宽度, 精度(小数点后的位数)为2的圆周率
    fmt.Printf("%.2f\n", math.Pi)
}
输出结果:
3.141593
3.14











