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
package main

import (
    "fmt"
    "reflect"
    "strconv"
)

func main() {
    vbool := false
    vint := 0-12345
    vuint := 123456
    vfloat := 123.456
    vstring := "2019"
   
    //判断变量类型,int To string
    fmt.Println(reflect.TypeOf(strconv.Itoa(vint)), strconv.Itoa(vint))
   
    //string To int
    test,_ := strconv.Atoi(vstring)
    fmt.Println(test)
    fmt.Println(strconv.Atoi(vstring))
   
    //十进制 To 八进制字符串
    fmt.Println(strconv.FormatUint(uint64(vuint), 8))
   
    //十进制 To 十六进制字符串
    fmt.Println(reflect.TypeOf(strconv.FormatUint(uint64(vuint), 16)))
   
    //fmt表示格式: "f"/"b"/"e"/"E"/"g"/"G" 包括这六种格式,默认为f
    //prec表示精度,自己控制
    //bitSize表示输入的是float32 还是float64,32/64.
    fmt.Println(strconv.FormatFloat(vfloat, 'e', 4, 64))
   
    //float保留两位小数
    value, _ := strconv.ParseFloat(fmt.Sprintf("%.2f", vfloat), 64)
    fmt.Println(value, reflect.TypeOf(value))
   
    // bool To string
    fmt.Println(strconv.FormatBool(vbool), reflect.TypeOf(strconv.FormatBool(vbool)))
   
    //将输入的string加上双引号
    fmt.Println(strconv.Quote(vstring))
}

结果

string -12345

2019

2019

361100

string

1.2346e+02

123.46 float64

false string

"2019"