数据类型转换

  1. 底层数据类型转换比如int 类型数据转换成 int8 int16 int32 int64

package main

import "fmt"

func main() {
    //同底层数据类型之间转换

    // 定义数字类型变量
    var num int = 8
    var num1 int8
    var num2 int16
    var num3 int32
    var num4 float32

    // 转换
    num1 = int8(num)
    num2 = int16(num)
    num3 = int32(num)
    num4 = float32(num)
    fmt.Printf("num1 类型: %T, num1=%v n",num1,num1)
    fmt.Printf("num2 类型: %T, num2=%v n",num2,num2)
    fmt.Printf("num3 类型: %T, num3=%v n",num3,num3)
    fmt.Printf("num4 类型: %T, num4=%v n",num4,num4)
    fmt.Printf("num 类型: %T, num=%v n",num,num)


}

运行结果

注意: 1) 类型转换只是将某个变量的值转换成其他类型,而被转换的变量没有影响

2) 高精度int类型转低精度int类型,如果超出低精度范围则会做溢出处理程序不会报错

  1. 不同数据类型转换, 比如将 int转成stringstring转成 int32

2.1 int boolstring

package main

import (
    "fmt"
    "strconv"
)

func main() {
    //不同底层数据类型之间转换 int int8 转 string

    // 定义数字类型变量
    var num int = 8
    var num2 int16 = 10
    var num3 float32 = 12.12
    var bool1 bool = true

    // 转换
    //注意参数第一个参数 必须是int64类型, 第二个参数 2-36 表示数值进制
    str1 := strconv.FormatInt(int64(num),10)
    fmt.Printf("str type: %T, str=%v n",str1,str1)

    str2 := strconv.FormatInt(int64(num2),10)
    fmt.Printf("str type: %T, str=%v n",str2,str2)

    // 参数1:只能是float64 ,参数2:格式 ,参数3:保留小数位数, 参数4:所转类型位数
    str3 := strconv.FormatFloat(float64(num3),'f',2,32)
    fmt.Printf("str type: %T, str=%v n",str3,str3)

    str4 := strconv.FormatBool(bool1)
    fmt.Printf("str type: %T, str=%v n",str4,str4)

}

执行结果

2.2 string转 int bool

package main

import (
    "fmt"
    "strconv"
)

func main() {
    //不同底层数据类型之间转换  string转 int int8

    // 定义变量
    var str1 string = "8"
    var str2 string = "12.12"
    var str3 string = "true"

    // 转换
    // 返回的int64, 可以根据需要进行底层转换
    num1,_ := strconv.ParseInt(str1,10,64)
    fmt.Printf("num1 类型:%T , num1=%v n",num1,num1)

    num2,_ := strconv.ParseFloat(str2,64)
    fmt.Printf("num2 类型:%T , num2=%v n",num2,num2)

    bool1,_ := strconv.ParseBool(str3)
    fmt.Printf("bool1 类型:%T , bool1=%v n",bool1,bool1)
}

执行结果

  1. 如果是单纯的 int转 sting 或者 string 转 int 那么就可以用 strconv的 Itoa(),Atoi()

package main

import (
    "fmt"
    "strconv"
)

func main() {
    //int 转 string
    var i int = 12122
    str := strconv.Itoa(i)
    fmt.Printf("str 类型:%T , str=%v n",str,str)

    //string 转 int
    var str1 string = "1123"
    intData,_ := strconv.Atoi(str1)
    fmt.Printf("intData 类型:%T , intData=%v n",intData,intData)

}

原文地址:https://blog.csdn.net/leo_jk/article/details/128537433

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_50399.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注