1. 浮点类型的说明:

浮点型有2个float32、float64。如下:

浮点有下面特征:

  1. 关于浮点数在机器中存放形式的简单说明,浮点数=符号位+指数位+尾数位 。说明:浮点数都是有符号的.。
  2. 尾数部分可能丢失,造成精度损失。例如: -123.0000901。
  3. float64 的精度比 float32 的要准确,如果我们要保存一个精度高的数,则应该选用 float64。通常情况下,应该使用 float64 ,因为它比 float32 更精确。[开发中,推荐使用 float64]
  4. Golang 的浮点型默认声明为 float64 类型。例如:var num = 1.1,就默认num是float64。
  5. 浮点型常量有两种表示形式。

    1)十进制数形式:如:5.12  或者 .512 \(必须有小数点表示0.512) 
    
    2)科学计数法形式。如:5.1234e2    = 5.12 \* 10 的 2 次方。    5.12E-2    = 5.12/10 的 2 次方
    

精度损失例子如下:

package main

import (
    "fmt"
)

func main()  {
    var num1 float32 = 0.00091
    var num2 float32 = -0.00005
    var num3 float64 = 19000987767

    //输出 0.00091 -5e-05 1.9000987767e+10
    fmt.Println(num1,num2,num3)


    var num4 float32 = -123.0000901
    var num5 float64 = -123.0000901
    //输出 -123.00009 -123.0000901
    //float32 去掉了01,精度减小了。float64 的精度比32位大
    fmt.Println(num4,num5)
}

上面的var num4 float32 = -123.0000901 输出的结果是 -123.00009 ,损失了精度。

常量写法例子:科学计数法、小数点的写法。

package main

import (
    "fmt"
)
func main()  {
    var num1 = 5.12
    //输出:num1的数据类型是 float64
    fmt.Printf("num1的数据类型是 %T ",num1)

    //前面一个小数点的写法
    var num2 = -.512
    var num3 = .512
    //输出:-0.512 0.512
    fmt.Println(num2,num3)


     num4 := 5.1234e2
     num5 := 5.12E-2  //E 可以大写,并且指数是负数
    //输出:512.34 0.0512
    fmt.Println(num4,num5)
}

results matching ""

    No results matching ""