英文:
formatFloat : convert float number to string
问题
http://golang.org/pkg/strconv/
http://play.golang.org/p/4VNRgW8WoB
如何将浮点数转换为字符串格式?
这是谷歌游乐场,但没有得到预期的输出(2e+07)。
我想要得到"21312421.213123"。
package main
import "fmt"
import "strconv"
func floattostr(input_num float64) string {
// 将浮点数转换为字符串
return strconv.FormatFloat(input_num, 'g', 1, 64)
}
func main() {
fmt.Println(floattostr(21312421.213123))
// 我期望得到的是字符串格式的"21312421.213123"
}
请帮我将浮点数转换为字符串。谢谢。
英文:
http://golang.org/pkg/strconv/
http://play.golang.org/p/4VNRgW8WoB
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
答案1
得分: 161
请稍等,我会为您翻译这段代码。
package main
import "fmt"
import "strconv"
func FloatToString(input_num float64) 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
包更容易。(Playground链接)
fmt.Printf("x = %.6f\n", 21312421.213123)
或者,如果您只想要将字符串转换为浮点数:
fmt.Sprintf("%.6f", 21312421.213123)
英文:
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))
}
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)
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)
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论