Подтвердить что ты не робот

formatFloat: преобразовать число с плавающей точкой в строку

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

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

Как преобразовать число с плавающей точкой в ​​строковый формат? Это игровая площадка Google, но не получение ожидаемого результата. (2е + 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
 }

Пожалуйста, помогите мне получить строку из числа с плавающей запятой. Благодаря

4b9b3361

Ответ 1

Попробуйте это

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)