go-07-数据类型-浮点型

Posted shark_西瓜甜

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了go-07-数据类型-浮点型相关的知识,希望对你有一定的参考价值。

一、数据类型介绍

为什么所有的开发语音中都需要类型?
文本 “Go” 和数字 28487 在 x86 架构的计算机上转换为二进制后,都是用 0110111101000111 表示,使用类型可以为这些相同的二进制赋予不同的
意义

在 Go 中数据类型有:
有基本的整型、浮点型、字符串、布尔
还有数组、切片、map、结构体、函数、通道(channel)等。

二、基本数据类型- 浮点型

Go 语言提供了两种浮点类型:

  • float64 默认的
  • float32

float 后面的32 和 64 是什么?

32 和 64 表示的是位数。

那么什么是位数?

1 比特位

电脑只认识 0 和 1 的二进制数字,每一个二进制数字就是一位,称为比特位 bit(binary digit)(简写:b,是计算机数据存储最小的单位。
比如 1 是 一个 位,0 也是一个位,101 是三个位。

2 字节

字节 Byte(简写:B),是计算机信息技术用于计量存储容量的一种计量单位,通常情况下一字节等于八个比特位,也就是 → 1Byte = 8bit = 1B = 8b
也就是,电脑中 8 个位称为一个 字节,1024 字节是 1 K

3 float32 和 float64

float32 就是使用 32个比特位表示浮点数,float64 是使用 float64 使用 64 个比特位表示浮点数。

float32 又称为单精度浮点数,它占用 4 字节的内存,也就是 32 位。
float64 占用 64字节的内存,也就是 64 位。

4 声明

默认情况下,声明的浮点数类型都是 float64,如下的定义,效果是一样的。

days := 365.2425
var days = 365.2425
var days float64 = 365.2425

一个整数可以使用明确指定类型的方式,声明为浮点型

var f float64 = 64

5 math 包

math 包中有很多已经定义好的浮点数,包中所有函数处理的都是float64 类型的浮点数,比如 math.Pi,math.MaxFloat32等。

Go 中浮点型的数据对应的最大值:

类型最大值(约等于)常量表示法
float323.4028234663852886e+38math.MaxFloat32
float641.7976931348623157e+308math.MaxFloat64

6 关于精度

float64 精度高于 float32

var pi64 = math.Pi
var pi32 float32 = math.Pi

fmt.Println(pi64)  // 3.141592653589793
fmt.Println(pi64)  // 3.1415927

7 输出浮点类型

fmt.Printf("%f", math.Pi)
fmt.Printf("%.2f", math.Pi)
ffmt.Printf("%4.2f", math.Pi)

"%宽度.精度f"

  • 宽度指定了打印整个浮点数的所需要的字符数(包含 整数部分、小数部分和小数点)
  • 精度指定了小数点后面保留的字符数

如果指定的宽度比实际打印出来的要大,则默认使用空格填充。
如希望使 0 填充可以使用: "%06.2f"

以上是关于go-07-数据类型-浮点型的主要内容,如果未能解决你的问题,请参考以下文章

C语言浮点型数据能不能取余?

什么是浮点型数据

从零开始的JAVA -3. java的数据类型

python下列哪些类型的数据可以放入到集合中 列表 字典 集合 整型 浮点型?

什么是浮点(float)数据类型?

单精度、双精度各有几位小数?