go语言数据类型分为:基本数据类型和派生数据类型。基础数据类型有:布尔类型(true或false)、数值型(整型(int、int8、int16、int32、int64、uint、uintptr、uint8、byte、uint16、uint32、uint64)和浮点型(float32、float64、complex64、complex128))、字符串类型(string),派生数据类型有:指针、数组、结构体、通道(channel)、切片(slice)、函数、接口(interface)、Map
浮点型数据类型的值一般由整数部分+小数点"."+小数部分组成。
其中,整数部分和小数部分均由10进制表示法表示。要是在其中加入指数部分。指数部分由"E"或"e"以及一个带正负号的10进制数组成。例如:110.5E-3表示浮点数0.1105;100.5E+1表示浮点数1005。
更多例子
100.25,-18.66。
浮点数类型值的简化
比如:125.10可以被简化为125.1;0.0521可以被简化为.0521。
浮点数在机器中存放形式:浮点数 = 符号位 + 指数位 + 尾数位
Go语言提供了float32和float64两种精度的浮点数。
两种精度的浮点数哪种的精度更高?
看下面例子
package main
import "fmt"
func main() {
var first_num float32 = -12.0000901
var second_num float64 = -12.0000901
fmt.Println("num1 = ", first_num, "num2 = ", second_num);
}
从上面的选择结果中看出,float64的精度比float32的准确。
如果要求取一个精度高的数,go语言中应该选择float64。
浮点数数据类型的存储分为三部分:符号位+指数位+尾数位。
在存储过程中,浮点数数据类型精度会有丢失。
golang的浮点型数据类型默认为float64类型,因为它比float32更精确。
float32表示存储占用4个字节,每个字节8位,4*8=32,共32位。
其中1位用来符号,8位用来指数,剩下的23位表示尾数。
float64表示存储占用8个字节,每个字节8位,8*8=32,共64位。
其中1位用来符号,11位用来指数,剩下的52位表示尾数。
然而精度的高低是由尾数的位数决定,所以float64的精度更高。
转载注明:
感谢博主,喝杯咖啡~
感谢博主,喝杯咖啡~
还没有人发表评论