浮点型-go语言数据类型

Go / 62人浏览 / 0人评论

go语言数据类型分为:基本数据类型和派生数据类型。基础数据类型有:布尔类型(true或false)、数值型(整型(int、int8、int16、int32、int64、uint、uintptr、uint8、byte、uint16、uint32、uint64)和浮点型(float32、float64、complex64、complex128))、字符串类型(string),派生数据类型有:指针、数组、结构体、通道(channel)、切片(slice)、函数、接口(interface)、Map

go语言浮点型-数据类型

浮点型数据类型的值一般由整数部分+小数点"."+小数部分组成。

其中,整数部分和小数部分均由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);
}

go

从上面的选择结果中看出,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的精度更高。

转载注明:

0 条评论

还没有人发表评论

发表评论 取消回复

记住我的信息,方便下次评论
有人回复时邮件通知我