本文共 1553 字,大约阅读时间需要 5 分钟。
小数类型用于存储和处理带有小数部分的数值,例如:1.2、0.23、-1.911等。这些数值可以在计算机中以浮点数的形式存储。
浮点数在计算机中以特定的格式存储,主要包括三个部分:符号位、指数位和尾数位。由于存储过程中会丢失部分精度,浮点数的精度存储存在一定的限制。
浮点数=符号位+指数位+尾数位
浮点数具有固定的有符号性。由于尾数位的有限位数,存储时会丢失部分精度。例如:-123.0000901会被近似为-123.00009。
float64的精度比float32更高,适合需要高精度存储的场景。浮点数的存储分为三部分:符号位、指数位和尾数位。存储过程中会丢失部分精度。
Golang中的浮点类型具有固定的范围和字段长度,不受操作系统影响。
Golang中的浮点类型默认声明为float64类型。
浮点常量有两种表示形式:
在大多数开发场景下,推荐使用float64类型,因为其比float32更高精度,适合需要高精度存储的应用。
package mainimport ( "fmt" "unsafe")func main() { var price float32 = 89.12 fmt.Println("price=", price) var num1 float32 = -0.00089 var num2 float64 = -7809656.09 fmt.Println("num1=", num1, "num2=", num2) var num3 float32 = -123.0000901 var num4 float64 = -123.0000901 fmt.Println("num3=", num3, "num4=", num4) var num5 = 1.1 fmt.Printf("num5的数据类型是 %T \n", num5) num6 := 5.12 num7 := 0.123 fmt.Println("num6=", num6, "num7=", num7) num8 := 5.1234e2 num9 := 5.1234E2 num10 := 5.1234E-2 fmt.Println("num8=", num8, "num9=", num9, "num10=", num10) var c1 rune = '北' fmt.Println("c1=", c1, unsafe.Sizeof(c1))} price= 89.12num1= -0.00089 num2= -7.80965609e+06num3= -123.00009 num4= -123.0000901num5的数据类型是 float64num6= 5.12 num7= 0.123num8= 512.34 num9= 512.34 num10= 0.051234c1= 21271 4
转载地址:http://hyhj.baihongyu.com/