zoukankan      html  css  js  c++  java
  • Golang的基础数据类型-浮点型

             Golang的基础数据类型-浮点型

                                作者:尹正杰

    版权声明:原创作品,谢绝转载!否则将追究法律责任。

     

     

    一.浮点型概述

      Go语言提供两种精度的浮点数,即float32和float64,其中float32占用4个字节大小,而float64占用8个字节大小。
    
      这些浮点数类型的取值范围极限值可以在Golang的math包中找到:
        常量math.MaxFloat32表示folat32能取到的最大数值,如下图所示,Go语言定义为:3.40282346638528859811704183484516925440e+38;
        常量math.SmallestNonzeroFloat32表示folat32能取到的最小数值,如下图所示,Go语言定义为:
    1.401298464324817070923729583289916131280e-45     常量math.MaxFloat64表示folat64能取到的最大数值,如下图所示,Go语言定义为:1.797693134862315708145274237317043567981e+308;     常量math.MaxFloat64表示folat64能取到的最小数值,如下图所示,Go语言定义为:4.940656458412465441765687928682213723651e-324;   浮点数都是相对精准的,存在一定的误差:     float32类型的浮点数可以提供约6个十进制数的精度,即按照四舍五入法默认小数点后保留六位。     float64类型的浮点数可以提供约15个十进制数的精度,即按照四舍五入法默认小数点后保留十五位。   通常应该优先使用float64类型,因为float32类型的累计祭祀按无法很容易扩散,并且float32能精确表示正整数并不是很大。

    二.浮点型简单应用案例

    1>.单精度浮点型float32应用案例

    2>.双精度浮点型float64应用案例

    package main
    
    import (
        "fmt"
    )
    
    func main() {
        /*
            温馨提示:
                自动推导类型命名的浮点数类型默认为float64.
        */
        a := 3.141592653589
        var b float64 = 1.618033988749
        /*
            3.141592653589 x 1.618033988749 = 5.083203592311165
    
            但是单精度浮点型小数点后默认保留六位,最终结果四舍五入法得到的结果为:5.083204
        */
        var c float64 = a * b
    
        fmt.Printf("a的类型为:[%T],a的值为:[%f]
    ", a, a)
        fmt.Printf("b的类型为:[%T],b的值为:[%f]
    ", b, b)
        fmt.Printf("c的类型为:[%T],c的值为:[%f]
    ", c, c)
    
        fmt.Printf("a x b = %f
    ", c)
    
        /*
            %.1f:
                表示小数点后按照四舍五入法保留1位有效数字
            %.2f:
                表示小数点后按照四舍五入法保留2位有效数字
            %.3f:
                表示小数点后按照四舍五入法保留3位有效数字
            ...:
                综上所述,依此类推即可....
        */
        fmt.Printf("a x b = %.1f
    ", c)
        fmt.Printf("a x b = %.2f
    ", c)
        fmt.Printf("a x b = %.3f
    ", c)
    }

    3>.使用浮点数的注意事项

    package main
    
    import (
        "fmt"
    )
    
    func main() {
        /*
                    使用浮点数注意事项:
                        (1)默认浮点数类型为float64;
                        (2)浮点数的简写形式,生产环境中并不推荐大家这样写,可读性差.
                            1>.如果小数部分为0,可以省略整数部分
                            2>.如果小数部分为0,可以省略小数部分
                        (3)使用科学计数法表示数据
                             可以使用%e占位符来表示科学计数法,了解即可,生产环境中使用相对较少。
        */
    
        //整数部分为0可以省略不写
        a := .1234
        fmt.Printf("a的类型为:[%T],a的值为:[%f]
    ", a, a)
    
        //小数部分为0可以省略不写
        b := 1.
        fmt.Printf("b的类型为:[%T],b的值为:[%f]
    ", b, b)
    
        c := 50832036.9
        fmt.Printf("c的类型为:[%T],c的值为:[%f]
    ", c, c)
    
        //使用科学计数法表示变量c对应的值e
        d := 5.08320369e7
        fmt.Printf("d的类型为:[%T],d的值为:[%f]
    ", d, d)
        fmt.Printf("d的类型为:[%T],d的值使用科学计数法表示为:[%e]
    ", d, d)
        fmt.Printf("d的类型为:[%T],d的值使用科学计数法表示为:[%E]
    ", d, d)
    }

     

     

     

  • 相关阅读:
    Mantis安装过程笔记
    Python脚本文件中使用中文
    String.trim的作用
    Ivy入门笔记
    Groovy正则表达式复杂逻辑判断实例
    Build a ZenTao Server on Linux
    Ubuntu上安装gevent
    Install Redmine Server with Bitnami Installer
    Semi-automation Script Based on Sleep
    关于MySQL的事务处理及隔离级别
  • 原文地址:https://www.cnblogs.com/yinzhengjie2020/p/12247502.html
Copyright © 2011-2022 走看看