多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
[TOC] ## **1:两大数据类型** ![](https://img.kancloud.cn/a1/81/a18125c91e92506adcf17411f51e599a_418x222.png) ## **2:整数类型的基本介绍** 例如: 0,1,2,3,1232,12313213 1,有符号的(这里的int默认是有符号的) ![](https://img.kancloud.cn/b7/6c/b76c9c8c3095229a3b0f6b58108fb86f_415x114.png) <br> 2,无符号的(这里的uint是默认无符号的) ![](https://img.kancloud.cn/a3/5f/a35f01cbc2a6f7a6efe4c196f5e5dfaa_415x113.png) <br> 3,整数的类型 ![](https://img.kancloud.cn/f8/30/f8306370a30c396c7de7ecbdc830dbce_417x150.png) <br> 4,整数使用细节 1. Golang各整数类型分: 有符号和无符号,int uint 的大小和系统有关。 2. Golang的整型默认声明为int 型 ``` package main import "fmt" func main(){ var sum = 100 fmt.Println(sum) } ``` 3. 如何在程序查看某个变量的字节大小和数据类型(使用较多) ----->查看类型 ``` package main import "fmt" func main(){ var sum = 100 fmt.Printf("sum of type is:%T",sum)// Printf()就是格式化输出 } ``` **运行结果** ``` sum of type is:int ``` ----->查看字节大小 ``` package main import ( "fmt" "unsafe" ) // 如何在某个程序中查看变量字节大小 func main(){ var sum int64 = 1000000 res := unsafe.Sizeof(sum) // unsafe这个函数可以返回字节大小 fmt.Printf("sum of type is:%T\tsum of byte is:%d",sum,res)// Printf()就是格式化输出 } ``` **运行结果:** ``` sum of type is:int64 sum of byte is:8 ``` 4.Golang程序 中整型变量在使用时,遵守保小不保大的原则,即:在保证程序正 确运行下,尽量使用占用空间小的数据类型。[如: 年龄] <br> 5.bit:计算机中的最小存储单位。byte:计算机中基本存储单元。[二进制再详细说] 一个byte=8个bit <br> <br> ## **3:浮点类型(float32/64)** ### 浮点类型 (也叫小数类型)例如:1.2,1.3,2.33,15.8 案例: ``` package main import ( "fmt" ) func main(){ var price float32 = 10.99 fmt.Println("price of value is :",price) } ``` **运行结果:** `price of value is : 10.99` <br> <br> ### **浮点类型分类** ![](https://img.kancloud.cn/b7/f1/b7f15fe352e71c4d42fef7c3e25a045c_330x90.png) 说明一下: 1,关于浮点数在机器中存放形式的简单说明,,浮点数\=符号位+指数位+尾数位 ``` package main import ( "fmt" ) func main(){ var price float32 = 10.99 fmt.Println("price of value is :",price) } ``` **运行结果:** `price of value is : 10.99` 2,尾数部分可能丢失,造成精度损失。\-123.0000901 说明: 2.1:Float64位的float32准确 2.2:如果我们要保存一个精度更高的则使用float64位 ``` package main import ( "fmt" ) func main(){ var price float32 = 10.99999111234 var sum float64 = 11.123456789 fmt.Printf("price:float32=%s sum:float64=%s\r",price,sum) } ``` **运行结果:** ``` price:float32=%!s(float32=10.999991) sum:float64=%!s(float64=11.123456789) ``` 上实例中,price失去了精度 3,浮点型的存储分为三部分:符号位+指数位+尾数位在存储过程中,精度会有丢失 ## **4:浮点型使用细节:** 1) Golang 浮点类型有固定的范围和字段长度,不受具体OS(操作系统)的影响。 2) Golang 的浮点型默认声明为float64类型。 ``` package main import ( "fmt" ) func main(){ var price = 10.1 fmt.Printf("price of type is:%T",price) } ``` **运行结果** ``` price of type is:float64 ``` 3:浮点型常量有两种表示形式 3.1:十进制数形式:如: 5.12 ..512 (必须有小数点) ``` package main import ( "fmt" ) func main(){ var price = 10.1 price1 := .999 fmt.Printf("price of value is:%T price value is:%S",price,price1) } ``` **运行结果:** ``` price of value is:float64 price value is:%!S(float64=0.999) ``` 3.2:科学计数法形式:如: 5.1234e2 = 5.12\* 10的2次方5.12E-2 = 5.12/10的2次方 ``` package main import ( "fmt" ) func main(){ sum := 5.1234e2 // 5.1234 * 10的2次方 sum1 := 5.1234E2 // 5.1234 * 10的2次方 sum2 := 5.1234e-2 // 5.1234 / 10的2次方 fmt.Println("sum=",sum,"sum1=",sum1,"sum2=",sum2) } ``` **运行结果:** ``` sum= 512.34 sum1= 512.34 sum2= 0.051234 ``` 3.3:通常情况下,应该使用float64, 因为它比float32更精确。