开发者

golang string、int、int64 float 互相转换方式

开发者 https://www.devze.com 2023-11-21 11:21 出处:网络 作者: 不变不中
目录golang string、int、int64 float 互相转换golang float string int 相互转换 保留小数位string 转换为 floatint 转化为 float转换为 string,并保留3位小数无论是 32位系统还是 64 位系统,都支持 float64总结g
目录
  • golang string、int、int64 float 互相转换
  • golang float string int 相互转换 保留小数位
    • string 转换为 float
    • int 转化为 float
    • 转换为 string,并保留3位小数
    • 无论是 32位系统还是 64 位系统,都支持 float64
  • 总结

    golang string、int、int64 float 互相转换

    #string到int  
    int,err := strconv.Atoi(string)  
    #string到int64  
    int64, err := strconv.ParseInt(string, 10, 64)  
    //第二个参数为基数(2~36),
    //第三个参数位大小表示期望转换的结果类型,其python值可以为0, 8, 16, 32和64,
    //分别对应 int,mxZQFFy int8, int16, int32和int64
    #int到string  
    string := strconv.Itoa(int) 
    //等价于
    string := strconv.FormatInt(int64(int),10)
    #int64到string  
    string := strconv.FormatInt(int64,10)  
    //第二个参数为基数,可选2~36
    //对于无符号整形,可以使用FormatUint(i uint64, base int)
    #float到string
    string := strconv.FormatFloat(float32,'E',-1,32)
    string := strconv.FormatFloat(float64,'E',-1,64)
    // 'b' (-ddddpddd,二进制指数)
    // 'e' (-d.ddddedd,十进制指数)
    // 'E' (-d.ddddEdd,十进制指数)
    // 'f' (-ddd.dddd,没有指数)
    // 'g' ('e':大指数,'f':其它情况)
    // 'G' ('E':大指数,'f':其它情况)
    #string到float64
    float,err := strconv.ParseFloat(string,64)
    #string编程客栈到float32
    float,err := strconv.ParseFloat(string,32)
    #int到int64
    int64_ := int64(1234)

    golang float string int 相互转php换 保留小数位

    string 转换为 float

    package main
    import (
     "fmt"
     "strconv"
    )
    func main() {
     input := "3.14"
     f_input, _ := strconv.ParseFloat(input, 64)
     fmt.Printf("%f - %T", f_input, f_input)
    }

    执行结果

    > go run main.go

    3.140000 - float64

    int 转化为 float

    score := 100
    f_score := float64(score)
    fmt.Printf("%f - %T\n", f_score,php f_score)
    > 100.000000 - float64

    转换为 string,并保留3位小数

    s_score := fmt.Sprintf("%.3f", f_score)

    注意,这样保留3位小数会自动四舍五入。

    无论是 32位系统还是 64 位系统,都支持 float64

    Ubuntu 查看系统是 32 位还是 64 位

    > uname -a
    linux 509B65C8YW2THMJ 4.4.0-18362-Microsoft #1-Microsoft Mon Mar 18 12:02:00 PST 2019 x86_64 x86_64 x86_64 GNU/Linux

    因为32位只是寄存器的一次处理的位数。配合不同的算法,多大的数字都可以处理。

    总结

    以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程客栈(www.devze.com)。

    0

    精彩评论

    暂无评论...
    验证码 换一张
    取 消

    关注公众号