// 法1:string转int num_str := "1234567" /* ParseInt():查看文档https://studygolang.com/pkgdoc 参数1:返回字符串表示的整数值,接受正负号。 参数2:base指定进制(2到36),如果base为0,则会从字符串前置判断,"0x"是16进制,"0"是8进制,否则是10进制; 参数3:bitSize指定结果必须能无溢出赋值的整数类型,0、8、16、32、64 分别代表 int、int8、int16、int32、int64;返回的err是*NumErr类型的,如果语法有误,err.Error = ErrSyntax;如果结果超出类型范围err.Error = ErrRange。 */ num_int8_8To10, err := strconv.ParseInt(num_str, 8, 8) fmt.Printf("num_int8_8To10的数据类型是%T, num_int8_8To10=%d\n", num_int8_8To10, num_int8_8To10) fmt.Println(err) num_int64_8To10, err := strconv.ParseInt(num_str, 8, 64) fmt.Printf("num_int64_8To10的数据类型是%T, num_int64_8To10=%d\n", num_int64_8To10, num_int64_8To10) fmt.Println(err) num_int32_10To10, err := strconv.ParseInt(num_str, 10, 32) fmt.Printf("num_int32_10To10的数据类型是%T, num_int32_10To10=%d\n", num_int32_10To10, num_int32_10To10) fmt.Println(err) // 法2:string转int num_int, _ := strconv.Atoi(num_str) fmt.Printf("num_int = %d\n", num_int)
输出结果为:
num_int8_8To10的数据类型是int64, num_int8_8To10=127 strconv.ParseInt: parsing "1234567": value out of range num_int64_8To10的数据类型是int64, num_int64_8To10=342391 <nil> num_int32_10To10的数据类型是int64, num_int32_10To10=1234567 <nil> num_int = 1234567
// string转float num1_str := "123.0000123" num1_float64, _ := strconv.ParseFloat(num1_str, 64) fmt.Printf("num1_float64 = %f\n", num1_float64)
输出结果为:
num1_float64 = 123.000012
// string转bool b_str := "true" b_bool, _ := strconv.ParseBool(b_str) fmt.Printf("b_bool的数据类型是%T, b_bool=%t\n", b_bool, b_bool)
输出结果为:
b_bool的数据类型是bool, b_bool=true
OK。
原文:https://www.cnblogs.com/smart-zihan/p/14928693.html