第四篇 -- Go语言string转其他类型

1. string转int

    // 法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
View Code

 

 

2. string转float

    // 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

 

 

3. string转bool

    // 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。

 

posted @ 2021-06-24 21:36  o云淡风轻o  阅读(189)  评论(0编辑  收藏  举报