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 <nil>
361100
string
1.2346e+02
123.46 float64
false string
"2019"