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 中浮点型的数据对应的最大值:
类型 | 最大值(约等于) | 常量表示法 |
---|---|---|
float32 | 3.4028234663852886e+38 | math.MaxFloat32 |
float64 | 1.7976931348623157e+308 | math.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-数据类型-浮点型的主要内容,如果未能解决你的问题,请参考以下文章