Package strconv
strconv是golang用来做数据类型转换的一个库
1.Append类型的方法
func AppendInt(dst []byte, i int64, base int) []byte
b1 := []byte("追加")
b1 = strconv.AppendInt(b1, -17, 10) //17用10进制方式加到后面
fmt.Println(string(b1))
b2 := []byte("追加")
b2 = strconv.AppendInt(b2, -17, 16) //17用16进制方式加到后面
fmt.Println(string(b2))
$追加-17
$追加-11
func AppendFloat(dst []byte, f float64, fmt byte, prec, bitSize int) []byte
f := []byte("追加")
f = strconv.AppendFloat(f, 3.1415926535, 'f', -1, 64)
fmt.Println(string(f))
$追加3.1415926535
第三个参数fmt说明:
%b 无小数部分的,指数为二的幂的科学计数法,与 strconv.FormatFloat 的 'b' 转换格式一致。例如 -123456p-78
%e 科学计数法,例如 -1234.456e+78
%E 科学计数法,例如 -1234.456E+78
%f 有小数点而无指数,例如 123.456
%g 根据情况选择 %e 或 %f 以产生更紧凑的(无末尾的 0)输出
%G 根据情况选择 %E 或 %f 以产生更紧凑的(无末尾的 0)输出
2.Format类型的方法
func FormatBool(b bool) string
将布尔值转换为字符串 true 或 false
str:=strconv.FormatBool(true)
fmt.Println(str)
$true
func FormatFloat(f float64, fmt byte, prec, bitSize int) string
将浮点数 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’:其它情况)
str:=strconv.FormatFloat(1.234567891234,'f',10,64)
fmt.Println(str)
$1.2345678912
func FormatInt(i int64, base int) string
func FormatUint(i uint64, base int) string
将整数转换为字符串形式。base 表示转换进制,取值在 2 到 36 之间。
str:=strconv.FormatInt(1234567890123,10)
fmt.Println(str)
$1234567890123
3.Parse类型的方法
func ParseBool(str string) (bool, error)
将字符串转换为布尔值
它接受真值:1, t, T, TRUE, true, True
它接受假值:0, f, F, FALSE, false, False
其它任何值都返回一个错误。
str,err:=strconv.ParseBool("true")
if err!=nil{
fmt.Println("error:",err)
return
}else{
fmt.Println(str)
}
str,err=strconv.ParseBool("1")
if err!=nil{
fmt.Println("error:",err)
return
}else{
fmt.Println(str)
}
$true
$true
func ParseFloat(s string, bitSize int) (float64, error)
将字符串解析为浮点数,使用 IEEE754 规范进行舍入。
bigSize 取值有 32 和 64 两种,表示转换结果的精度。
如果有语法错误,则 err.Error = ErrSyntax
如果结果超出范围,则返回 ±Inf,err.Error = ErrRange
str,err:=strconv.ParseFloat("3.123456789",64)
if err!=nil{
fmt.Println("error:",err)
return
}else{
fmt.Println(str)
}
$3.123456789
func ParseInt(s string, base int, bitSize int) (i int64, err error)
func ParseUint(s string, base int, bitSize int) (uint64, error)
将字符串解析为整数,ParseInt 支持正负号,ParseUint 不支持正负号。
base 表示进位制(2 到 36),如果 base 为 0,则根据字符串前缀判断,
前缀 0x 表示 16 进制,前缀 0 表示 8 进制,否则是 10 进制。
bitSize 表示结果的位宽(包括符号位),0 表示最大位宽。
str,err:=strconv.ParseInt("123456789123456789",10,64)
if err!=nil{
fmt.Println("error:",err)
return
}else{
fmt.Println(str)
}
$123456789123456789