Go 語言的浮點型(float)
前面兩個小節我們我們都是在講解整型的數據類型,也就是說都是整數,但是在開發中我們也會經常使用小數數據,這節課我們就主要介紹 Go 語言中處理小數的數據類型
1. 實數類型
Go 語言提供了兩種精度的浮點數 float32 和 float64,它們的算術規范由 IEEE754 浮點數國際標準定義,該浮點數規范被所有現代的 CPU 支持。
序號 | 類型 | 長度 |
---|---|---|
1 | float32 | 1.401298464324817e-45~3.4028234663852886e+38 |
2 | float64 | 5e-324~1.7976931348623157e+308 |
2. 復數類型
序號 | 類型 | 長度 |
---|---|---|
1 | complex64 | 實部和虛部都是一個float32 |
2 | complex128 | 實部和虛部都是一個float64 |
3. 使用示例
通過幾個示例加深對這幾個數據類型的理解。
3.1 實數類型示例
在 Go 語言中小數值類型取決于計算機操作系統的位數,我是使用的 64位 的計算機,所以使用:=
時,會得到一個類型為 float64 的變量
package main
import (
"fmt"
)
func main() {
var a float32
a = 1.2
fmt.Println("a = ", a) // 此處的結果
//自動推導類型
b := 1.2
fmt.Printf("b type is %T\n", b)
fmt.Println("b = ", b)
}
輸出結果:
3.2 復數類型示例
在 Go 語言中復數值類型取決于計算機操作系統的位數,我是使用的 64 位的計算機,所以使用:=
時,會得到一個類型為 complex128 的變量
package main
import (
"fmt"
)
func main() {
var a complex64
a = 1.2 + 2.22i
fmt.Println("a = ", a) // 此處的結果
//自動推導類型
b := 1.2 + 3.45i
fmt.Printf("b type is %T\n", b)
fmt.Println("b = ", b)
//通過內建函數取實部和虛部
fmt.Println("real(b) = ", real(b), " , imag(b) = ", imag(b))
}
輸出結果:
4. 小結
本文主要學習了 Go 語言中的浮點型的使用,注意高精度向低精度轉失真的風險。