Golang中常用类型转换

一、 Int类型之间精度转换,比如Int -> Int64

一般的,精度转换可以直接通过T(xxx)的方式,T代表需要转换的类型名称,比如int、int64

1
2
3
var a int = 64
var b = int32(a)
println(int32(b))

二、Int转String类型

2.1.

1
2
3
var a int = 6
//var a int64 = 6
fmt.Sprintf("%d", a)

2.2.

1
2
3
//注意这种方法,第一个参数只接受int的数据类型
var a int = 6
string := strconv.Itoa(a)

2.3.

1
2
3
//注意这种方法,第一个参数只接受int64的数据类型
var a int64 = 6
string := striconv.FormatInt(i, 10)

三、String转Int类型

3.1

1
2
var str string = "this is test"
int,err:=strconv.Atoi(str)

3.2

1
2
3
var str string = "this is test"
i64, err := strconv.ParseInt(str, 10, 64)
//i32, err := strconv.ParseInt(str, 10, 32) //第二位:进制数,第三位:int8,int32,int64....

四、字符串转float32/float64

4.1

1
2
3
var str string = "this is a test"
float32, err = ParseFloat(str, 32)
float64, err = ParseFloat(str, 64)

五、浮点数float转为字符串

5.1

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
//func FormatFloat(f float64, fmt byte, prec, bitSize int) string
// FormatFloat 将浮点数 f 转换为字符串值
// f:要转换的浮点数
// fmt:格式标记(b、e、E、f、g、G)
// prec:精度(数字部分的长度,不包括指数部分)
// bitSize:指定浮点类型(32:float32、64:float64)
//
// 格式标记:
// 'b' (-ddddp±ddd,二进制指数)
// 'e' (-d.dddde±dd,十进制指数)
// 'E' (-d.ddddE±dd,十进制指数)
// 'f' (-ddd.dddd,没有指数)
// 'g' ('e':大指数,'f':其它情况)
// 'G' ('E':大指数,'f':其它情况)
//
// 如果格式标记为 'e','E'和'f',则 prec 表示小数点后的数字位数
// 如果格式标记为 'g','G',则 prec 表示总的数字位数(整数部分+小数部分)

var f float64 = 3.22
fmt.Println(strconv.FormatFloat(f, 'e', 5, 64))

六、字符串转换为bool类型 true 或 false

6.1

1
2
3
4
//func ParseBool(str string) (bool, error)
var str string = "this is test"
f, err := strconv.ParseBool(str)
fmt.Println(f,err)

七、布尔转换为字符串

7.1

1
2
3
//func FormatBool(b bool) string
var b bool = true
fmt.Println(strconv.FormatBool(b))

八、其他数据类型 uint、byte、interface