formatFloat:将浮点数转换为字符串 [英] formatFloat : convert float number to string
问题描述
http://golang.org/pkg/strconv/
http://play.golang.org/p/4VNRgW8WoB
如何将浮点数转换为字符串格式?这是google游乐场,但未获得预期的输出.(2e + 07)我想得到"21312421.213123"
How do I convert a float number into string format? This is google playground but not getting the expected output. (2e+07) I want to get "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
}
请帮助我从浮点数中获取字符串.谢谢
Please help me get the string out of float number. Thanks
推荐答案
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.例如
If you just want as many digits precision as possible, then the special precision -1 uses the smallest number of digits necessary such that ParseFloat will return f exactly. Eg
strconv.FormatFloat(input_num, 'f', -1, 64)
我个人认为 fmt
更易于使用.(游乐场链接)
Personally I find fmt
easier to use. (Playground link)
fmt.Printf("x = %.6f\n", 21312421.213123)
或者如果您只想转换字符串
Or if you just want to convert the string
fmt.Sprintf("%.6f", 21312421.213123)
这篇关于formatFloat:将浮点数转换为字符串的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!