mirror of
https://github.com/gopl-zh/gopl-zh.github.com.git
synced 2024-11-28 09:09:07 +00:00
Update ch3-02.md
This commit is contained in:
parent
de7237379d
commit
2df6b07a5d
@ -1,3 +1,27 @@
|
|||||||
## 3.2. 浮點數
|
## 3.2. 浮點數
|
||||||
|
|
||||||
|
Go语言提供了两种精度的浮点数, float32 和 float64. 它们的算术规范由 IEEE754 国际标准定义, 该浮点数规范被所有现代的CPU支持.
|
||||||
|
|
||||||
|
这些数值类型的范围可以从很微小到很巨大. 浮点数的范围极限值可以在 matn 包找到. 常量 math.MaxFloat32 表示 float32 能表示的最大数值, 大约是 3.4e38, 对应的 math.MaxFloat64 常量大约是 1.8e308. 它们能表示的最小值近似分别是1.4e-45 和 4.9e-324.
|
||||||
|
|
||||||
|
一个 float32 类型的浮点数可以提供大约6个十进制数的精度, 而 float64 则可以提供约 15个十进制数精度; 通常应该优先使用 float64 类型, 因为 float32 类型的累计计算误差很容易扩散, 并且 float32 能精度表示的正整数并不是很大:
|
||||||
|
|
||||||
|
```Go
|
||||||
|
var f float32 = 16777216 // 1 << 24
|
||||||
|
fmt.Println(f == f+1) // "true"!
|
||||||
|
```
|
||||||
|
|
||||||
|
浮点数的字面值可以直接写小数部分, 想这样:
|
||||||
|
|
||||||
|
```Go
|
||||||
|
const e = 2.71828 // (approximately)
|
||||||
|
```
|
||||||
|
|
||||||
|
小数点前面或后面的数字都可能被省略(例如 .707 或 1.). 很小或很大的数最好用科学计数法书写, 通过e或E来指定指数部分:
|
||||||
|
|
||||||
|
```Go
|
||||||
|
const Avogadro = 6.02214129e23
|
||||||
|
const Planck = 6.62606957e-34
|
||||||
|
```
|
||||||
|
|
||||||
TODO
|
TODO
|
||||||
|
Loading…
Reference in New Issue
Block a user