GO语言中整型-字符串,浮点型-字符串的相互转换

整型-字符串

需要导入“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'表示ddp\pmddd格式,'e'或'E'表示d.ddde\pmdd格式或d.dddE\pmdd格式, '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还提供其他类型的转换,如字符串转为复数等,用起来和上面的差不多,比较简单这里就不作记录了。

你可能感兴趣的:(GO语言,golang,开发语言,后端)