2022-01-14 14:57:48  2203 0

go中float32和float4区别

 标签:   

大家好!我是猪哥,又到了更新go语言小技巧的时候了,今天我们来分享下,在go 中 关于基本数据类型 float32 和float64 在我们日常开发中应该使用那个好呢?

下面我们通过案例来看看到底是怎样的!我们打开vscode 输入以下代码

package main

import (
    "fmt"
)

func main()  {
    

    var num1 float32 = 25.12349999976
    var num2 float64 = 25.12349999976
    num3 := 25.12349999976 // 这里使用类型推导没有指定类型
    fmt.Println("num1=",num1)
    fmt.Println("num2=", num2)
    fmt.Printf("num1的数据类型%T\n",num1)
    fmt.Printf("num2的数据类型%T\n",num2)
    fmt.Printf("num3的默认数据类型%T\n",num3)
}

结果如下:

image.png

我们可以看到 num1 是float32 类型,num2 是float64类型,num3 我们没有指定数据类型!

num1 是float32 类型 小数点只保留到了 前4位,而 num2 是float64 精度没有丢失,而num3 我们没有指定类型,我们打印看到它默认的结果是 float64。

我们可以得出结果 ,go 中 float 的默认类型就是 float64,使用 float32 会导致精度丢失问题!

所以在日常开发中 我们推荐使用 float64 来保存 小数类型,不会造成精度丢失。 

感谢阅读,最后祝大家新年快乐!