需要导入“strconv"包。
整型转为字符串的函数为strconv.Itoa(),返回值为转换后的字符串。
package main
import (
"fmt"
"strconv"
)
func main() {
tmp := strconv.Itoa(123)
fmt.Printf("%T", tmp)
}
运行结果为
string
而字符串转为整型则要用到strconv.Atoi() 。返回值有两个:第一个是转换后的整型,第二个则是异常信息。如果转换失败异常信息则为非空值。(GO语言中,空值为”nil")
package main
import (
"fmt"
"strconv"
)
func main() {
tmp, _ := strconv.Atoi("123")
fmt.Printf("%T", tmp)
}
运行结果为
int
不过虽然说是字符串,但实际能转换为整型的只有全为数字的字符串。如果包含字母或者其他字符,虽然不会报错但返回的字符串会变为0(int型)。
package main
import (
"fmt"
"strconv"
)
func main() {
tmp, _ := strconv.Atoi("1a2")
fmt.Printf("%v\n", tmp)
tmp, _ = strconv.Atoi("12")
fmt.Printf("%v\n", tmp)
}
运行结果为
0
12
附:int还分有int8,int16,int32和int64。要将字符串转换为对应类型的话则需要用到这个函数
strconv.ParseInt("123", 10, 16)
//第一个参数为字符串
//第二个参数为字符串进制数,表示字符串所代表的是几进制。可填入2,8,10,16
//第三个参数为整型类型,表示字符串应转为什么类型的整型,可填入8,16,32,64
仍然需要导入"strconv"包。
浮点转为字符串需要通过strconv.FormatFloat()实现。一共四个参数:
strconv.FormatFloat(f,fmt,prec,bitsize)
f表示需要转换的浮点数
fmt表示浮点数的标记格式。其中,'f'表dd.dddd格式,'b'表示ddpddd格式,'e'或'E'表示d.dddedd格式或d.dddEdd格式, 'g'或’G'表示指数大时用”e"或“E”格式,不然就用'f'格式。(d表示的是单个数字0,1...9)
prec表示转为字符串后保留的位数,包括整数位数和小数点后的位数。如果不够就自动往后补0。
bitsize表示浮点数类型,可填入32或64,对应float32,float64
package main
import (
"fmt"
"strconv"
)
func main() {
tmp := strconv.FormatFloat(1.1, 'f', 2, 32)
fmt.Printf("%v\n", tmp)
}
而字符串转为浮点数需要用到strconv.ParseFloat(),用法和strconv.Atoi()类似。不过由于精度问题转换为浮点数后不会等于原来的值,可以按位数舍去后面的部分。(如字符串“123.123”转为浮点数后值为123.12300109)
package main
import (
"fmt"
"strconv"
)
func main() {
tmp, _ := strconv.ParseFloat("123.123", 32)
fmt.Printf("%v\n", tmp)
}
除此之外,strconv还提供其他类型的转换,如字符串转为复数等,用起来和上面的差不多,比较简单这里就不作记录了。