go05 实数

简介: go05 实数

go05 实数

声明浮点型变量

下面这三个语句的效果是一样的:


87b86a2867d345a8a613c31ab1127319.png


只要数字含有小数部分,那么它的类型就是 float64

如果你使用一个整数来初始化某个变量,那么你必须指定它的类型为 float64,否则它就是一个整数类型:


9473f79e948d4f29b9be7231549680fc.png


单精度浮点数类型


Go 语言里有两种浮点数类型:


默认是 float64


64 位的浮点类型


占用 8 字节内存


某些编程语言把这种类型叫做 double(双精度)


float32


占用 4 字节内存


精度比 float64 低


有时叫做单精度类型


想要使用单精度类型,你必须在声明变量的时候指定该类型:



448c091205c7471d882b0ba5a774c40c.png

d2231053581d47309d1da07bc67d55b9.png


单双精度的使用场景

当处理大量数据时,例如 3D 游戏中的数千个顶点,使用 float32 牺牲精度来节省内存是很有意义的。

math 包里面的函数操作的都是 float64 类型,所以应该首选使用 float64,除非你有足够的理由不去使用它。



零值

Go 里面每个类型都有一个默认值,它称作零值。

当你声明变量却不对它进行初始化的时候,它的值就是零值。


0f3fdd267ce1406d93d99f32b1f765b4.png


60c235fb80484c90adb752fad11c5549.png


显示浮点类型

使用 Print 或 Println 打印浮点类型的时候,默认的行为是尽可能的多显示几位小数

如果你不想这样,那么你应该使用 Printf 函数,结合 %f 格式化动词来指定显示小数的位数:


3fbc74038f2c4beb93cdff79582b13fd.png


0ef2353aed734699ab08a3d0da0342b3.png

%f 格式化动词

它由两部分组成:


  • 宽度:会显示出的最少字符个数(包含小数点和小数)
  • 如果宽度大于数字的个数,那么左边会填充空格
  • 如果没指定宽度,那么就按实际的位数进行显示
  • 精度:小数点后边显示的位数

7ca6fa2fb5f4492fab445810774eb8ae.png

如果想使用 0 代替空格作为填充:

589cd2d1c1ea4561a6c0c367988a9a5b.png


浮点类型的精度


16cdee113bb94c16aebcadeca8c29200.png


30e78723e91744868016c8567ea9a9ac.png

8862d83d974c497f93b9afadaf3897c5.png


276fda6f62ab4626b056e32220e9e28b.png


如何比较浮点类型

第一个打印输出的是 false ,第二个打印输出的是 true 。


59e76ba73ab84123866400cc406a242d.png

【上一讲】go04 变量和作用域

【下一讲】go06 整数

目录
相关文章
|
6天前
|
Go
Go的数值型
Go的数值型
14 1
|
6天前
|
存储 分布式计算 算法
GO学习笔记之表达式
GO学习笔记之表达式
34 1
|
6天前
|
Go
Go 运算符
运算符用于对变量和值执行操作。 加号运算符(+)将两个值相加,如下面的示例所示: 示例代码:
93 2
|
7月前
|
存储 Go
Go学习笔记-Go 浮点数设计原理
Go学习笔记-Go 浮点数设计原理
58 0
YI
|
10月前
|
Go
LeetCode 0069. X的平方根【Go】
LeetCode 0069. X的平方根【Go】
YI
64 0
|
11月前
|
存储 Go
go06 整数
go06 整数
50 0
|
11月前
|
存储 自然语言处理 编译器
go07 很大的数
go07 很大的数
51 0
|
11月前
|
存储 编译器 Go
Golang:go-hashids从整数生成短唯一ID
Golang:go-hashids从整数生成短唯一ID
183 0
|
存储 自然语言处理 Go
深入理解 Go 中的字符串
在编程语言中,字符串发挥着重要的角色。字符串背后的数据结构一般有两种类型: 一种在编译时指定长度,不能修改 一种具有动态的长度,可以修改。