Golang下int、float和String之间的转换

  • int => string
1
string := strconv.Itoa(int)

其原理是FormatInt(int64(i), 10)

  • string => int
1
int, err := strconv.Atoi(string)
  • int64,int32,int16,int8 => string
1
string := strconv.FormatInt(int64,10)
  • string => int系列
1
int, err := strconv.ParseInt(string, 10, 64) // 64,32,16,8分别对应int系列

然后将结果强转成对应的类型。

  • float系列 => string
1
2
3
4
5
6
7
string := strconv.FormatFloat(float64,'E',-1,64)
// 'b' (-ddddp±ddd,二进制指数)
// 'e' (-d.dddde±dd,十进制指数)
// 'E' (-d.ddddE±dd,十进制指数)
// 'f' (-ddd.dddd,没有指数)
// 'g' ('e':大指数,'f':其它情况)
// 'G' ('E':大指数,'f':其它情况)
  • string => float系列
1
float,err := strconv.ParseFloat(string,64)

使用fmt.Sprintf("%d", int)来转换int成string时,相对于使用strconv.FormatInt,性能差了很多。