go的数据类型-基本数据类型-浮点型

2023-04-19 20:37:17 浏览数 (1)

概述

浮点型是一种表示有理数的数据类型,它可以表示小数和大数,Go语言中的浮点型有float32和float64两种类型。本篇文章将详细介绍Go语言中的浮点型,包括浮点型类型的定义、默认值、转换和运算等方面。

浮点型类型的定义

在Go语言中,浮点型类型有float32和float64两种类型,它们分别占用4字节和8字节内存,用于表示单精度和双精度浮点数。

float32类型的范围为-3.4E383.4E38,精度为6位小数;float64类型的范围为-1.7E3081.7E308,精度为15位小数。

浮点型类型的默认值

与整型类型不同,浮点型类型的默认值为0.0。

代码语言:javascript复制
package main

import "fmt"

func main() {
    var f1 float32
    var f2 float64

    fmt.Println(f1)  // 输出 0
    fmt.Println(f2)  // 输出 0
}

上面的代码中,我们定义了一个float32类型变量f1和一个float64类型变量f2,由于它们没有被初始化,所以它们的值都为0.0。

浮点型类型的转换

浮点型类型之间可以进行转换,但需要注意的是,由于精度不同,可能会导致精度损失。转换的语法格式如下:

代码语言:javascript复制
float32(value)
float64(value)

下面的示例演示了如何将float32类型转换为float64类型:

代码语言:javascript复制
package main

import "fmt"

func main() {
    var f1 float32 = 3.14159
    var f2 float64 = float64(f1)

    fmt.Println(f1)  // 输出 3.14159
    fmt.Println(f2)  // 输出 3.1415899999999998
}

上面的代码中,我们定义了一个float32类型变量f1,然后将它转换为float64类型赋值给变量f2,最后输出它们的值。可以看到,由于float32类型的精度只有6位小数,而float64类型的精度为15位小数,所以在转换过程中,f2的值出现了精度损失。

浮点型类型的运算

浮点型类型可以进行基本运算,包括加、减、乘、除等。下面的示例演示了如何进行浮点型运算:

代码语言:javascript复制
package main

import "fmt"

func main() {
    var f1 float32 = 3.14
    var f2 float32 = 2.718

    fmt.Println(f1   f2)   // 输出 5.858
    fmt.Println(f1 - f2)   // 输出 0.422
    fmt.Println(f1 * f2)   // 输出 8.53952
    fmt.Println(f1 / f2)   // 输出 1.1566265
}

上面的代码中,我们定义了两个float32类型变量f1和f2,并对它们进行加、减、乘、除等运算,并输出了运算结果。可以看到,浮点型的运算结果是可以保留小数点后的精度的,但也存在精度损失的问题。

go

0 人点赞