【Go言語】Golangのfloat型(浮動小数型)についてまとめてみた

Golangにおいて小数の型は「float64型」と「float32型」の二つあります。

2つありますが主に使うのは「float64型」と考えても大丈夫でしょう。

変数宣言時のfloat型

明示的な型定義の場合

var 変数名 float64 = 少数の値

暗黙的な型定義の場合

変数名 := 少数の値

では実際に、変数に少数の値を代入して出力などをやってみます。

package main

import "fmt"

func main() {
  var test1 float64 = 1.5   //変数test1に1.5を代入(明示的な型定義)
  test2 := 4.7              //変数test2に4.7を代入(暗黙的な型定義)

  fmt.Println(test1)        //変数test1の値を出力
  fmt.Println(test2)        //変数test2の値を出力

  fmt.Printf("%T\n", test1) //変数test1の型を出力
  fmt.Printf("%T\n", test2) //変数test2の型を出力
}

出力結果↓

1.5      //test1の値
4.7      //test2の値
float64  //test1の型
float64  //test2の型

型変換(float64型→float32型)

float64型の値をfloat32型に型変換する

package main

import "fmt"

func main() {
  var test1 float64 = 1.5   //float64型で変数宣言(明示的な型定義)

  fmt.Println(float32(test1))        //型変換後の値
  fmt.Printf("%T\n", float32(test1)) //型変換後の型
}

出力結果↓

1.5
float32

見事に型変換成功。

0.0で割った場合の挙動

浮動小数を0.0で割った時の結果が少し特殊なので確認しておきましょう。

package main

import "fmt"

func() {
  zero := 0.0

  positiveFloat := 1.0 / zero
  negativeFloat := -1.0 / zero
  nanFloat : = zero / zero

  fmt.Println(positiveFloat)
  fmt.Println(negativeFloat)
  fmt.Println(nanFloat)
}

出力結果↓

+Inf //正の無限大
-Inf //負の無限大
Nan  //非数

非数とは、表すことのできない数値データのこと。ちなみに「Not a number」の略。

具体的な使い方はよく分かりませんが、このような結果になるということは頭の片隅に入れておくと良いかもしれません。

タイトルとURLをコピーしました