【发布时间】:2013-09-27 21:12:19
【问题描述】:
使用 Go,我试图找到将浮点数格式化为字符串的“最佳”方式。我一直在寻找示例,但是我找不到任何可以专门回答我的问题的东西。我要做的就是使用“最佳”方法将浮点数格式化为字符串。小数位数可能会有所不同,但将是已知的(例如 2 或 4 或零)。 下面是我想要实现的一个示例。
根据下面的示例,我应该使用fmt.Sprintf() 或strconv.FormatFloat() 还是其他?
而且,每个的正常用法和它们之间的区别是什么?
我也不明白在以下当前有 32 的情况下使用 32 或 64 的意义:
strconv.FormatFloat(float64(fResult), 'f', 2, 32)
例子:
package main
import (
"fmt"
"strconv"
)
func main() {
var (
fAmt1 float32 = 999.99
fAmt2 float32 = 222.22
)
var fResult float32 = float32(int32(fAmt1*100) + int32(fAmt2*100)) / 100
var sResult1 string = fmt.Sprintf("%.2f", fResult)
println("Sprintf value = " + sResult1)
var sResult2 string = strconv.FormatFloat(float64(fResult), 'f', 2, 32)
println("FormatFloat value = " + sResult2)
}
【问题讨论】:
-
fmt.Sprintf("%.2f", fResult)将浮点数设置为字符串。见stackoverflow.com/a/62753031/12817546。strconv.ParseFloat(f, 64)将字符串设置为浮点数。见stackoverflow.com/a/62740786/12817546。
标签: go