go string转int,int64,int32及注意事项
string 转 int (正整数)
// string 转 int
str5 := "123"
int5, err := strconv.atoi(str5)
if err != nil {
fmt.println(err)
} else {
fmt.printf("int5 value is %d, type is %t\n", int5, int5)
// int5 value is 123, type is int
}string 转 int (负整数)
// string 转 int
str6 := "-123"
int6, err := strconv.atoi(str6)
if err != nil {
fmt.println(err)
} else {
fmt.printf("int6 value is %d, type is %t\n", int6, int6)
// int6 value is -123, type is int
}string 转 int64
// string 转 int64
str7 := "123"
int7, err := strconv.parseint(str7, 10, 64)
if err != nil {
fmt.println(err)
} else {
fmt.printf("int7 value is %d, type is %t\n", int7, int7)
// int7 value is 123, type is int
}string 转 int64
// string 转 int64
str9 := "123"
// 参数1 数字的字符串形式
// 参数2 数字字符串的进制 比如二进制 八进制 十进制 十六进制
// 参数3 返回结果的bit大小 也就是int8 int16 int32 int64
int9, err := strconv.parseint(str9, 8, 64)
if err != nil {
fmt.println(err)
} else {
fmt.printf("int9 value is %d, type is %t\n", int9, int9)
// int9 value is 83, type is int64
// 83 = 1 * 8^2 + 2 * 8^1 + 3 * 8^0
}string 转 int32
// string 转 int32
str10 := "123"
int10, err := strconv.parseint(str10, 10, 32)
if err != nil {
fmt.println(err)
} else {
j := int32(int10)
fmt.printf("j value is %d, type is %t", j, j)
// j value is 123, type is int32%
}
}string 转 数值类型 必须为数字的字符串形式
// string 转 数值类型 必须为数字的字符串形式
str1 := "123sd"
int1, err := strconv.atoi(str1)
if err != nil {
fmt.println(err) // strconv.atoi: parsing "123sd": invalid syntax
} else {
fmt.printf("int1 value is %d, type is %t\n", int1, int1)
}string 转 数值类型 必须为数字的字符串形式
// string 转 数值类型 必须为数字的字符串形式
str2 := "123sd123"
int2, err := strconv.atoi(str2)
if err != nil {
fmt.println(err) // strconv.atoi: parsing "123sd123": invalid syntax
} else {
fmt.printf("int2 value is %d, type is %t\n", int2, int2)
}string 转 数值类型 数值范围必须在目标范围内
// string 转 数值类型 数值范围必须在目标范围内
str3 := "11111111111111111111"
int3, err := strconv.atoi(str3)
if err != nil {
fmt.println(err) // strconv.atoi: parsing "11111111111111111111": value out of range
} else {
fmt.printf("int3 value is %d, type is %t\n", int3, int3)
}string 转 数值类型 浮点数无法转整型
// string 转 数值类型 浮点数无法转整型
str4 := "123.12"
int4, err := strconv.atoi(str4)
if err != nil {
fmt.println(err) // strconv.atoi: parsing "123.12": invalid syntax
} else {
fmt.printf("int4 value is %d, type is %t\n", int4, int4)
}总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。
发表评论