主要涉及到包strconv, 具体详情自行查看
相关转换示例如下
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
package main
import (
"strconv"
"fmt"
)
func main() {
var intnum int = -666
var int64num int64 = -64
var uintnum uint64 = 666
floatnum := 6.66
str := ""
str = strconv.Itoa(intnum)
fmt.Println("int to string: ", intnum, "=>", str)
// strconv.FormatInt
// 第二个参数base: 表示转换的进制 2 <= base <= 64
str = strconv.FormatInt(int64num, 10)
fmt.Println("int64 to string: ", int64num, "=>", str)
str = strconv.FormatUint(uintnum, 10)
fmt.Println("uint to string: ", uintnum, "=>", str)
// strconv.FormatFloat
// 第二个参数为转换格式参数
// 'b' (-ddddp±ddd,二进制指数)
// 'e' (-d.dddde±dd,十进制指数)
// 'E' (-d.ddddE±dd,十进制指数)
// 'f' (-ddd.dddd,没有指数)
// 'g' ('e':大指数,'f':其它情况)
// 'G' ('E':大指数,'f':其它情况)
//
// 第三个参数为保留小数个数(-1为保持原来不变, 其他值依据四舍五入进行处理)
// 第四个参数为Float的位数(bitSize)
str = strconv.FormatFloat(floatnum, 'E', -1, 32)
fmt.Println("float to string: ", floatnum, "=>", str)
str = strconv.FormatFloat(floatnum, 'f', -1, 64)
fmt.Println("float to string: ", floatnum, "=>", str)
str = strconv.FormatFloat(floatnum, 'f', 1, 64)
fmt.Println("float to string: ", floatnum, "=>", str)
intstr := "-6661"
uintstr := "6661"
floatstr := "6.661"
var err error
intnum, err = strconv.Atoi(intstr)
if err != nil {
fmt.Println(err)
} else {
fmt.Println("string to int:", intstr, "=>", intnum)
}
// 第三参数为位数(bitSize)
uintnum, err = strconv.ParseUint(uintstr, 10, 32)
if err != nil {
fmt.Println(err)
} else {
fmt.Println("string to unit:", uintstr, "=>", uintnum)
}
floatnum, err = strconv.ParseFloat(floatstr, 64)
if err != nil {
fmt.Println(err)
} else {
fmt.Println("string to flost:", floatstr, "=>", floatnum)
}
}