2023.05.25  

【Go】float64の末尾0埋めについて

Go    

go言語のfloat64型を出力する際に、末尾を0埋めをしたい場合と、したくない場合があるかと思います。
その際のそれぞれの記載方法についてメモ書きします。

結論

ゼロ埋めしたい場合はfmt.Printf("%f\n",<float64>)を使います。
ゼロ埋めしたくない場合はstrconv.FormatFloat(,<float64>, 'f', -1, 64)を使います。

fmt.Printf("%v\n", ,<float64>)でもゼロ埋めされないですが、FormatFloatで明示的に変換した方が良いと思います。

fmt.Printf("%.Nf\n",<float64>)はN箇所に出力したい少数桁を設定することができます。
strconv.FormatFloat(,<float64>, 'f', N, 64)についても第三引数の値で出力したい少数桁を設定することができます。(-1はゼロ埋めなし)

実行例

package main

import (
    "fmt"
    "strconv"
)

func main() {

    num := 0.9
    fmt.Printf("%f\n", num)
    fmt.Printf("%.1f\n", num)
    fmt.Printf("%.2f\n", num)
    fmt.Printf("%.3f\n", num)
    fmt.Printf("%.4f\n", num)
    fmt.Printf("%.10f\n\n", num)

    fmt.Printf("%v\n", num)
    fmt.Printf("%v\n", strconv.FormatFloat(num, 'f', -1, 64))
    fmt.Printf("%v\n", strconv.FormatFloat(num, 'f', 10, 64))
}

実行結果

% go run main.go
0.900000
0.9
0.90
0.900
0.9000
0.9000000000

0.9
0.9
0.9000000000
コメント
現在コメントはありません。
コメントする
コメント入力

名前 (※ 必須)

メールアドレス (※ 必須 画面には表示されません)

送信