69

http://golang.org/pkg/strconv/

http://play.golang.org/p/4VNRgW8WoB

浮動小数点数を文字列形式に変換するにはどうすればよいですか? これは Google Playground ですが、期待される出力が得られません。(2e+07) 「21312421.213123」を取得したい

package main

import "fmt"
import "strconv"

func floattostr(input_num float64) string {

        // to convert a float number to a string
    return strconv.FormatFloat(input_num, 'g', 1, 64)
 }

 func main() {
      fmt.Println(floattostr(21312421.213123))
      // what I expect is "21312421.213123" in string format
 }

浮動小数点数から文字列を取得するのを手伝ってください。ありがとう

4

1 に答える 1

155

これを試して

package main

import "fmt"
import "strconv"

func FloatToString(input_num float64) string {
    // to convert a float number to a string
    return strconv.FormatFloat(input_num, 'f', 6, 64)
}

func main() {
    fmt.Println(FloatToString(21312421.213123))
}

できるだけ多くの桁数の精度が必要な場合は、特別な精度 -1 を使用して、ParseFloat が f を正確に返すために必要な最小桁数を使用します。例えば

strconv.FormatFloat(input_num, 'f', -1, 64)

個人的にはfmt使いやすいと思います。(遊び場リンク)

fmt.Printf("x = %.6f\n", 21312421.213123)

または、文字列を変換したいだけの場合

fmt.Sprintf("%.6f", 21312421.213123)
于 2013-09-30T18:56:44.520 に答える