一.浮点数概述

  • 浮点类型用于存储带有小数点的数字
  • 一个整数数值可以赋值给浮点类型但是一个整型变量不可以赋值给浮点类型
  • 浮点数进行运算的结果是浮点数
  • Go语言中浮点类型有两个
    • float32
    • float64

二.浮点数取值范围

  • float32和float64取值范围
类型 取值范围
float32 3.40282346638528859811704183484516925440e+38
float64 1.797693134862315708145274237317043567981e+308
  • 可以通过math或中常量快速获取浮点数的最大值
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    package main

    import (
    "fmt"
    "math"
    )

    func main() {
    fmt.Println(math.MaxFloat32)
    fmt.Println(math.MaxFloat64)
    }

三.浮点运算

  • float32和float64之间不可以相互运算,需要进行类型转换
    1
    2
    3
    4
    5
    6
    func main() {
    var a float32 = 1.5
    var b float64 = 3.3 //默认是float64类型
    fmt.Println(a + float32(b)) //float64向float32转换
    fmt.Println(float64(a) + b) //float32向float64转换
    }
  • 建议使用float64,虽然占用空间多,但是float32在累计运算时可能出现误差
  • 整型运算和浮点型运算结果类型为本身类型
    1
    2
    3
    4
    5
    6
    func main() {
    var a, b int = 3, 2
    var c, d float64 = 3, 2
    fmt.Println(a / b) //结果为int,舍去小数部分(向下取整)
    fmt.Println(c / d) //结果为float64
    }