• 第三篇 -- Go语言其他类型转String方法


    1. int转string

        // 法1: int转string
        num_int := 10
        num_str_2 := fmt.Sprintf("%b", num_int)
        fmt.Printf("num_int的数据类型是%T, num_str_2的数据类型是%T, num_str_2=%s
    ", num_int, num_str_2, num_str_2)
        num_str_8 := fmt.Sprintf("%o", num_int)
        fmt.Printf("num_int的数据类型是%T, num_str_8的数据类型是%T, num_str_8=%s
    ", num_int, num_str_8, num_str_8)
        num_str_10 := fmt.Sprintf("%d", num_int)
        fmt.Printf("num_int的数据类型是%T, num_str_10的数据类型是%T, num_str_10=%s
    ", num_int, num_str_10, num_str_10)
        num_str_16 := fmt.Sprintf("%0x", num_int)
        fmt.Printf("num_int的数据类型是%T, num_str_16的数据类型是%T, num_str_16=%s
    ", num_int, num_str_16, num_str_16)
    
        // 法2: int转string
        num1_int := 128
        num1_str_2 := strconv.FormatInt(int64(num1_int), 2)
        num1_str_8 := strconv.FormatInt(int64(num1_int), 8)
        num1_str_10 := strconv.Itoa(num1_int)
        num1_str_16 := strconv.FormatInt(int64(num1_int), 16)
        fmt.Printf("num1_int的数据类型是%T, num1_str_2的数据类型是%T, num1_str_2=%s
    ", num1_int, num1_str_2, num1_str_2)
        fmt.Printf("num1_int的数据类型是%T, num1_str_8的数据类型是%T, num1_str_8=%s
    ", num1_int, num1_str_8, num1_str_8)
        fmt.Printf("num1_int的数据类型是%T, num1_str_10的数据类型是%T, num1_str_10=%s
    ", num1_int, num1_str_10, num1_str_10)
        fmt.Printf("num1_int的数据类型是%T, num1_str_16的数据类型是%T, num1_str_16=%s
    ", num1_int, num1_str_16, num1_str_16)

    输出结果为:

    num_int的数据类型是int, num_str_2的数据类型是string, num_str_2=1010
    num_int的数据类型是int, num_str_8的数据类型是string, num_str_8=12
    num_int的数据类型是int, num_str_10的数据类型是string, num_str_10=10
    num_int的数据类型是int, num_str_16的数据类型是string, num_str_16=a
    num1_int的数据类型是int, num1_str_2的数据类型是string, num1_str_2=10000000
    num1_int的数据类型是int, num1_str_8的数据类型是string, num1_str_8=200
    num1_int的数据类型是int, num1_str_10的数据类型是string, num1_str_10=128
    num1_int的数据类型是int, num1_str_16的数据类型是string, num1_str_16=80
    View Code

    2. float转string

        // 法1: float转string
        num_float := 12.75
        num_str := fmt.Sprintf("%f", num_float)
        fmt.Printf("num_float的数据类型是%T,num_str的数据类型是%T,num_str=%s
    ", num_float, num_str, num_str)
        num_str_k3 := fmt.Sprintf("%.3f", num_float)
        fmt.Printf("num_float的数据类型是%T,num_str_k3的数据类型是%T,num_str_k3=%s
    ", num_float, num_str_k3, num_str_k3)
        num_str_k1 := fmt.Sprintf("%.1f", num_float)
        fmt.Printf("num_float的数据类型是%T,num_str_k1的数据类型是%T,num_str_k1=%s
    ", num_float, num_str_k1, num_str_k1)
    
        // 法2: float转string
        num1_float := 128.99000003253
        num1_str_k8 := strconv.FormatFloat(num1_float, 'f', 8, 64)
        fmt.Printf("num1_float的数据类型是%T, num1_str_k8的数据类型是%T, num1_str_k8=%s
    ", num1_float, num1_str_k8, num1_str_k8)
        num1_str_k2 := strconv.FormatFloat(num1_float, 'f', 2, 64)
        fmt.Printf("num1_float的数据类型是%T, num1_str_k2的数据类型是%T, num1_str_k2=%s
    ", num1_float, num1_str_k2, num1_str_k2)
        num1_str_k0 := strconv.FormatFloat(num1_float, 'f', 0, 64)
        fmt.Printf("num1_float的数据类型是%T, num1_str_k0的数据类型是%T, num1_str_k0=%s
    ", num1_float, num1_str_k0, num1_str_k0)

    输出结果为:

    num_float的数据类型是float64,num_str的数据类型是string,num_str=12.750000
    num_float的数据类型是float64,num_str_k3的数据类型是string,num_str_k3=12.750
    num_float的数据类型是float64,num_str_k1的数据类型是string,num_str_k1=12.8
    num1_float的数据类型是float64, num1_str_k8的数据类型是string, num1_str_k8=128.99000003
    num1_float的数据类型是float64, num1_str_k2的数据类型是string, num1_str_k2=128.99
    num1_float的数据类型是float64, num1_str_k0的数据类型是string, num1_str_k0=129
    View Code

    3. bool转string

        // 法1: bool转string
        b_bool := true
        b_str := fmt.Sprintf("%t", b_bool)
        fmt.Printf("b_bool的数据类型是%T, b_str的数据类型是%T, b_str=%s
    ", b_bool, b_str, b_str)
    
        // 法2: bool转string
        b1_bool := false
        b1_str := strconv.FormatBool(b1_bool)
        fmt.Printf("b1_bool的数据类型是%T, b1_str的数据类型是%T, b1_str=%s
    ", b1_bool, b1_str, b1_str)

    输出结果为:

    b_bool的数据类型是bool, b_str的数据类型是string, b_str=true
    b1_bool的数据类型是bool, b1_str的数据类型是string, b1_str=false
    View Code

    4. char 转 string

    这个有点特殊,打印出来的数据类型不是char型

        c_char := '@'
        c_str := fmt.Sprintf("%c", c_char)
        fmt.Printf("c_char的数据类型是%T, c_str的数据类型是%T, c_str=%s
    ", c_char, c_str, c_str)

    输出结果为:

    c_char的数据类型是int32, c_str的数据类型是string, c_str=@

    还需进一步研究。

    源代码:

    package main
    
    import (
        "fmt"
        "strconv"
    )
    
    func main() {
    
        // 法1: int转string
        num_int := 10
        num_str_2 := fmt.Sprintf("%b", num_int)
        fmt.Printf("num_int的数据类型是%T, num_str_2的数据类型是%T, num_str_2=%s
    ", num_int, num_str_2, num_str_2)
        num_str_8 := fmt.Sprintf("%o", num_int)
        fmt.Printf("num_int的数据类型是%T, num_str_8的数据类型是%T, num_str_8=%s
    ", num_int, num_str_8, num_str_8)
        num_str_10 := fmt.Sprintf("%d", num_int)
        fmt.Printf("num_int的数据类型是%T, num_str_10的数据类型是%T, num_str_10=%s
    ", num_int, num_str_10, num_str_10)
        num_str_16 := fmt.Sprintf("%0x", num_int)
        fmt.Printf("num_int的数据类型是%T, num_str_16的数据类型是%T, num_str_16=%s
    ", num_int, num_str_16, num_str_16)
    
        // 法2: int转string
        num1_int := 128
        num1_str_2 := strconv.FormatInt(int64(num1_int), 2)
        num1_str_8 := strconv.FormatInt(int64(num1_int), 8)
        num1_str_10 := strconv.Itoa(num1_int)
        num1_str_16 := strconv.FormatInt(int64(num1_int), 16)
        fmt.Printf("num1_int的数据类型是%T, num1_str_2的数据类型是%T, num1_str_2=%s
    ", num1_int, num1_str_2, num1_str_2)
        fmt.Printf("num1_int的数据类型是%T, num1_str_8的数据类型是%T, num1_str_8=%s
    ", num1_int, num1_str_8, num1_str_8)
        fmt.Printf("num1_int的数据类型是%T, num1_str_10的数据类型是%T, num1_str_10=%s
    ", num1_int, num1_str_10, num1_str_10)
        fmt.Printf("num1_int的数据类型是%T, num1_str_16的数据类型是%T, num1_str_16=%s
    ", num1_int, num1_str_16, num1_str_16)
    
        // 法1: float转string
        num_float := 12.75
        num_str := fmt.Sprintf("%f", num_float)
        fmt.Printf("num_float的数据类型是%T,num_str的数据类型是%T,num_str=%s
    ", num_float, num_str, num_str)
        num_str_k3 := fmt.Sprintf("%.3f", num_float)
        fmt.Printf("num_float的数据类型是%T,num_str_k3的数据类型是%T,num_str_k3=%s
    ", num_float, num_str_k3, num_str_k3)
        num_str_k1 := fmt.Sprintf("%.1f", num_float)
        fmt.Printf("num_float的数据类型是%T,num_str_k1的数据类型是%T,num_str_k1=%s
    ", num_float, num_str_k1, num_str_k1)
    
        // 法2: float转string
        num1_float := 128.99000003253
        num1_str_k8 := strconv.FormatFloat(num1_float, 'f', 8, 64)
        fmt.Printf("num1_float的数据类型是%T, num1_str_k8的数据类型是%T, num1_str_k8=%s
    ", num1_float, num1_str_k8, num1_str_k8)
        num1_str_k2 := strconv.FormatFloat(num1_float, 'f', 2, 64)
        fmt.Printf("num1_float的数据类型是%T, num1_str_k2的数据类型是%T, num1_str_k2=%s
    ", num1_float, num1_str_k2, num1_str_k2)
        num1_str_k0 := strconv.FormatFloat(num1_float, 'f', 0, 64)
        fmt.Printf("num1_float的数据类型是%T, num1_str_k0的数据类型是%T, num1_str_k0=%s
    ", num1_float, num1_str_k0, num1_str_k0)
    
        // 法1: bool转string
        b_bool := true
        b_str := fmt.Sprintf("%t", b_bool)
        fmt.Printf("b_bool的数据类型是%T, b_str的数据类型是%T, b_str=%s
    ", b_bool, b_str, b_str)
    
        // 法2: bool转string
        b1_bool := false
        b1_str := strconv.FormatBool(b1_bool)
        fmt.Printf("b1_bool的数据类型是%T, b1_str的数据类型是%T, b1_str=%s
    ", b1_bool, b1_str, b1_str)
    
        c_char := '@'
        c_str := fmt.Sprintf("%c", c_char)
        fmt.Printf("c_char的数据类型是%T, c_str的数据类型是%T, c_str=%s
    ", c_char, c_str, c_str)
    
    }
    View Code

    OK。

  • 相关阅读:
    JavaScript学习总结【5】、JS DOM
    JavaScript学习总结【11】、JS 运动
    JavaScript学习总结【7】、JS RegExp
    JavaScript学习总结【1】、初识JS
    JavaScript学习总结【10】、DOM 事件
    直接选择排序及交换二个数据的实现
    快速排序
    Lucene.net搜索结果排序(单条件和多条件)
    冒泡排序
    直接插入排序的三种实现
  • 原文地址:https://www.cnblogs.com/smart-zihan/p/14927687.html
Copyright © 2020-2023  润新知