Golang で float型 と string型 を相互に変換する

float型 → string型


func FormatFloat(f float64, fmt byte, prec, bitSize int) string

  • f float64
  • fmt byte
    • exponent = 指数, otherwise = もしそうでなければ
    • 'b' (-ddddp±ddd, a binary exponent)
    • 'e' (-d.dddde±dd, a decimal exponent)
    • 'E' (-d.ddddE±dd, a decimal exponent)
    • 'f' (-ddd.dddd, no exponent)
    • 'g' ('e' for large exponents, 'f' otherwise)
    • 'G' ('E' for large exponents, 'f' otherwise)
  • prec
    • 'b' の場合この値は何でもいい
    • 'e', 'E', 'f' の場合
      • 小数点以下の桁数。-1 にすると最大桁数になる
    • 'g', 'G' の場合
      • 最大桁数。-1 にすると 'f' で最大桁数の結果が返る
  • bitSize int
    • 32 か 64

import(
	"fmt"
	"strconv"
)

func main() {

	var f float64
	f = 1234.5678

	// " ではなく ' であることに注意
	fmt.Printf(strconv.FormatFloat(f, 'f', 2, 64)) // "1234.56"
	fmt.Printf(strconv.FormatFloat(f, 'f', -1, 64)) // "1234.5678"
}

string型 → float型

package main

import (
	"fmt"
	"strconv"
)

func main() {
	var i string = "1.2345678"
	f, err := strconv.ParseFloat(i, 64)
	if err != nil {
		fmt.Printf("%s\n", err.Error())
		return
	}
	fmt.Print(f)
}
カテゴリー:Go