go 查看变量类型 reflect.TypeOf(变量名 )
int 转string
s:=strconv.Itoa(i) 等价于 strconv.FormatInt(int(i),10)
示例:
func zhuan(){
var a int = 2
fmt.Println(a,reflect.TypeOf(a))
b:=strconv.Itoa(a)
b:=strconv.FormatInt(int64(a),10)
fmt.Println(b,reflect.TypeOf(b))
}
int64转string
i := int64(123)
s := strconv.FormatInt(i, 10)
第二个参数为基数,可选2~36
注:对于无符号整形,可以使用FormatUint(i uint64, base int)
示例:
func zhuan(){
i := int64(1234)
fmt.Println(i,reflect.TypeOf(i))
s:=strconv.FormatInt(i,10)
fmt.Println(s,reflect.TypeOf(s))
}
string转int
i,err :=strconv.Atoi(s)
字符串转int有一个空值变量一起跟着转换,所以可以用一个_ 来承接这个nil
示例:
func zhuan(){
a1 := "223344"
fmt.Println(a1,reflect.TypeOf(a1))
b2,_:=strconv.Atoi(a1)
fmt.Println(b2,reflect.TypeOf(b2))
}
string 转 int64
i, err := strconv.ParseInt(s, 10, 64)
第二个参数为基数(2~36),第三个参数位大小表示期望转换的结果类型,其值可以为0, 8, 16, 32和64,分别对应 int, int8, int16, int32和int64
func zhuan(){
a1 := "223344"
b3,_:=strconv.ParseInt(a1,10,64)
fmt.Println(b3,reflect.TypeOf(b3))
}
float 相关
float转string
a:=10
b:=3.99
//将不同类型转成相同类型进行计算操作
//类型转换格式 数据类型(变量) 数据类型(表达式)
//c:=float64(a)*b
//将浮点型转成整型数据 保留浮点型整数部分 舍弃小数部分 不会进行四舍五入
c:=a*int(b)
fmt.Println(c)
string转float
func zhuan(){
s3:="3.1415926535"
b4,_:=strconv.ParseFloat(s3,32)
b5,_:=strconv.ParseFloat(s3,64)
fmt.Println(b4,reflect.TypeOf(b4))
fmt.Println(b5,reflect.TypeOf(b5))
}
float转string
func zhuan(){
s4:=3.1415926535
b6:=strconv.FormatFloat(s4, 'E', -1, 32)
b7:=strconv.FormatFloat(s4, 'E', -1, 64)
fmt.Println(b6,reflect.TypeOf(b6)) ///3.1415927E+00 string
fmt.Println(b7,reflect.TypeOf(b7)) ///3.1415926535E+00 string
}
注意语法类型:
s1 := strconv.FormatFloat(v, 'E', -1, 32)
v代表要转换的变量,'E'为参数,-1为对应转换过去的小数点后续数量,32/64为需要转变的类型
/// 'b' (-ddddp±ddd,二进制指数)
/// 'e' (-d.dddde±dd,十进制指数)
/// 'E' (-d.ddddE±dd,十进制指数)
/// 'f' (-ddd.dddd,没有指数)
/// 'g' ('e':大指数,'f':其它情况)
/// 'G' ('E':大指数,'f':其它情况)
//string到int int,err:=strconv.Atoi(string)
//string到int64 int64, err := strconv.ParseInt(string, 10, 64) //int到string string:=strconv.Itoa(int)
//int64到string string:=strconv.FormatInt(int64,10)
//string到float32(float64) float,err := strconv.ParseFloat(string,32/64)
//float到string string := strconv.FormatFloat(float32, 'E', -1, 32) 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':其它情况)