一、整型
1、整型的分类:
有符号整型: int8、int16、int32、int64
对应的无符号整型: uint8、uint16、uint32、uint64
uint就是我们熟知的byte类型,int16对应C语言的short型,int64对应C语言的long型,Unicode字符的rune类型和int32等价。
哪些情况下使用 int 和 uint
1.逻辑对整型范围没有特殊需求。
2.例如,对象的长度使用内建 len() 函数返回,这个长度可以根据不同平台的字节长度进行变化。实际使用中,切片或 map 的元素数量等都可以用 int 来表示。
3.反之,在二进制传输、读写文件的结构描述时,为了保持文件的结构不会受到不同编译目标平台字节长度的影响,不要使用 int 和 uint。
2、整型的运算。
1.运算符
下面是关于Go语言中关于算数运算,逻辑运算和比较运算的二元运算符,按照先级递减的顺序排列
* / % << >> & &^
+ - | ^
== != <= > >=
&&
| |
同一优先级使用左优先结合规则,也可用()提升优先级
2.类型转化
不同类型之间不能进行计算,如想进行计算需先进行类型转换
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
var i int32 = 10 var j int64 = 20 var w int = i + j //compile error: misatched types int32 and int64 var w int = int(i) + int(j) //30 类型转换后可计算
3.类型转换后发生值改变的情况
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
//浮点数转整型,会省略小数点后的值 f := 3.1415 i := int(f) fmt.Println(f,i) // “3.1415 3” //高位数的整型转低位数的整型会导致值改变 var i int16 = 26985 var j int8 = int8(i) fmt.Println("int16",i) fmt.Println("int8",j)
二、浮点数
1、浮点数精度
float32:常量math.MaxFloat32表示float32能表示的最大数值,大约是3.4e38。大约可以提供6个十进制数的精度。
float64:对应的常量math.MaxFloat64大约是1.8e308,可以提供十五个十进制数的精度。通常优先使用float64类型。
2、浮点数的打印
%g 打印浮点数
%e 带指数的打印形式(对应表格的数据)
%f 打印对应表格的数据
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
package main import ( "fmt" "math" ) func main() { print_float() } func print_float(){ for x:=0;x<8;x++{ fmt.Printf("x = %d e^x = %8.3f ",x,math.Exp(float64((x)))) } } // %8.3f 8表示展示数据的宽度,即显示多少个数字,3表示精准度,即小数点后保留几位 //运行结果 //x = 0 e^x = 1.000 //x = 1 e^x = 2.718 //x = 2 e^x = 7.389 //x = 3 e^x = 20.086 //x = 4 e^x = 54.598 //x = 5 e^x = 148.413 //x = 6 e^x = 403.429 //x = 7 e^x = 1096.633