美文网首页
go语言中的float类型

go语言中的float类型

作者: CurryCoder | 来源:发表于2020-10-11 21:05 被阅读0次
package main

import (
    "fmt"
    "math"
)

func main(){
    // 声明浮点类型变量
    // 以下三种声明方式均是等价的
    days := 3.1415
    // var days = 3.1415
    // var days float64 = 3.1415
    // 只要数字含有小数部分,那么它的类型就是float64
    fmt.Println("days =", days)
    // 如果你使用一个整数来初始化某个变量,那么你必须指定它的类型为float64,否则它就是一个整数类型
    var answer float64 = 42
    fmt.Printf("answer = %f\n", answer)

    year := 2020
    fmt.Println("year =", year)

    /* 单精度浮点数类型 */
    // Go语言中有两种浮点数类型:
        // 1.默认是float64
            // a.64位的浮点类型
            // b.占用8个字节内存
            // c.某些编程语言把这种类型称为double
        // 2.float32
            // a.占用4个字节内存
            // b.精度比float64低
            // c.有时候也叫单精度类型
    
    // 想使用单精度类型,必须在声明变量时指定该类型
    var pi64 = math.Pi
    var pi32 float32 = math.Pi
    fmt.Println("pi64 =", pi64)
    fmt.Println("pi32 =", pi32)

    /* 单精度的使用场景 */
        // 1.当处理大量数据时,例如3D游戏中的数千个顶点,使用float32牺牲精度来节省内存是有意义的
        // 2.math包中的函数操作都是float64类型,所以应该首选使用float64,除非你有足够的理由不去使用它
    
    
    /* 零值 */
        // go语言中每个类型都有一个默认值,称为零值
        // 当你声明变量却不对其进行初始化时,它的值就是零值
    var price float64
    fmt.Println("price =",price)

    /* 显示浮点类型 */
        // 1.使用Print或Println打印浮点类型时,默认的行为是尽可能多显示几位小数
        // 2.如果你不想这样,那么应该使用Printf函数,结合%f格式化动词来指定显示小数的位数
    third := 1.0 / 3
    fmt.Println("third =",third)
    fmt.Printf("thirdv = %v\n", third)
    fmt.Printf("thirdf = %f\n", third)
    fmt.Printf("third3f = %.3f\n", third)  // %.3f小数点后保留3位
    fmt.Printf("third42f = %4.2f\n", third) // %4.2f包含小数点共4位,其中小数点后保留2位

    second := 11 / 3
    fmt.Println("second =",second)  // 3

    /* %f格式化动词 */
    // 它有两部分组成:宽度 + 精度
        // 宽度:会显示出的最少字符个数(包含小数点和小数)
            // a.如果宽度大于数字的个数,那么左边会填充空格
            // b.如果没有指定宽度,那么就按实际的位数进行显示
        
        // 精度:小数点后面显示的位数

    // 如果想使用0代替空格作为填充
    fmt.Printf("%05.2f\n", third)

    first := 21.0 / 5.0
    fmt.Println(first)

    // 如何比较两个浮点数
    payment := 0.1
    payment += 0.2
    fmt.Println(payment == 0.3)

    // 正确的做法
    fmt.Println(math.Abs(payment - 0.3) < 0.0001)
}

相关文章

  • go语言中的float类型

  • Go语言之字符串八

    字符串在 Go 语言中以原生数据类型出现,使用字符串就像使用其他原生数据类型(int、bool、float32、f...

  • Go语言的常量与变量

    数据类型 go语言支持常见的数据类型。 数字:go语言支持整型int和浮点型float32/float64。位运算...

  • 浮点数的表示

    语言和C#语言中,对于浮点类型的数据采用单精度类型(float)和双精度类型(double)来存储,float数据...

  • 03-数据类型转换

    数值类型转换 C语言中存在显式转换和隐式转换 Go语言中只有显式转换 Go语言中数值类型转换注意点 数值类型转换为...

  • go学习笔记(二)——基本数据类型

    数据类型 1.基本类型 go语言中的基本类型如上图所示,go语言中有五类基数类型。 1) boolean型 同其他...

  • Go语言中的字符和字符串

    Go语言中的字符 在Go语言中,没有字符类型,字符类型是rune类型,rune是int32的别称。 下面用一个简单...

  • Go语言入门指南系列之《2基础类型》

    Go 语言中的基础类型   在 Go 编程语言中,数据类型用于声明函数和属性。数据类型的出现时为了把数据分成所需要...

  • 【Golang 基础】Go 语言中的基本类型

    Go 语言中的基础类型   在 Go 编程语言中,数据类型用于声明函数和属性。数据类型的出现时为了把数据分成所需要...

  • Go Type

    Go语言中type关键字用于定义类型,因此又称为类型别名。 Go语言中的type并不对应着C/C++语言中的typ...

网友评论

      本文标题:go语言中的float类型

      本文链接:https://www.haomeiwen.com/subject/grcypktx.html