基本数据类型与srting互转

基本类型转string

方式一
fmt.Sprintf

var numInt int = 888
var numDecimal float64 = 888.888
var booleanBool bool = false
var byteByte byte = 'a'
str := ""

//整型以十进制方式显示
str = fmt.Sprintf("%d", numInt)
//"888" string
fmt.Printf("%q %T\n", str, str)

//整型以八进制方式显示
str = fmt.Sprintf("%o", numInt)
//"1570" string
fmt.Printf("%q %T\n", str, str)

//浮点数
str = fmt.Sprintf("%f", numDecimal)
//"888.888000" string
fmt.Printf("%q %T\n", str, str)

//布尔值
str = fmt.Sprintf("%t", booleanBool)
//"false" string
fmt.Printf("%q %T\n", str, str)

//字符
str = fmt.Sprintf("%c", byteByte)
//"a" string
fmt.Printf("%q %T\n", str, str)

方式二
strconv

//整数转化
str = strconv.Itoa(numInt)
//"888" string
fmt.Printf("%v %T\n", str, str)

//转换int为字符串 参数一只能是int64 参数二为进制
str = strconv.FormatInt(int64(numInt), 10)
//888 string
fmt.Printf("%v %T\n", str, str)

//uint
str = strconv.FormatUint(uint64(numInt), 10)
//"888" string
fmt.Printf("%T %v", str, str)

//转换float64为字符串 参数2一般为'f' 参数3为保留几位小数 参数4为要转换的float类型是32还是64
str = strconv.FormatFloat(numDecimal, 'f', 10, 64)
//888.8880000000 string
fmt.Printf("%v %T\n", str, str)

//bool
str = strconv.FormatBool(booleanBool)
//false string
fmt.Printf("%v %T\n", str, str)

string转基本数据类型

bool:

str := "1"
var err error
var booleanBool bool
//bool
//只有"1", "t", "T", "true", "TRUE", "True"能转为true
//只有"0", "f", "F", "false", "FALSE", "False"能转为false并且err为空也就是无错误
//其他字符串值只能转为false并且有err有值 报错
booleanBool, err = strconv.ParseBool(str)
// bool true <nil>
fmt.Printf("%T %v %v", booleanBool, booleanBool, err)

整型:

str := "1231231"
var num int64
//参数2 要转为几进制 
//参数3代表你要转的数的大小 8就等于int8 最大为127 转化的值超出大小 err会有值 
//一般给0或者64 这样大小为int或者int64
num, _ = strconv.ParseInt(str, 10, 8)
//int64 127
fmt.Printf("%T %v", num, num)

num, _ = strconv.ParseInt(str, 10, 0)
//int64 1231231
fmt.Printf("%T %v", num, num)

浮点:

var numDecimal float64
var str = "123.123"
numDecimal, _ = strconv.ParseFloat(str, 64)
fmt.Printf("%T %v", numDecimal, numDecimal)
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!