1. 程式人生 > GO語言入門 >12 Go 的浮點型(float)

12 Go 的浮點型(float)

前面兩個小節我們我們都是在講解整型的資料型別,也就是說都是整數,但是在開發中我們也會經常使用小數資料,這節課我們就主要介紹 Go 語言中處理小數的資料型別

1. 實數型別

Go 語言提供了兩種精度的浮點數 float32float64,它們的算術規範由 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 語言中的浮點型的使用,注意高精度向低精度轉失真的風險。