我试图使用最小宽度为3的fmt.Printf来打印浮动
ParentFormType
应该打印->add('property2', SubFormType::class, array(
'error_bubbling' => true
))
,而是打印fmt.Printf("%3f", float64(0))
如果我将精度设置为3,则会截断该值。
基本上,我想要的是如果值为0,它应该打印0.00
。如果值为0.000000
,则应打印0.00
等
答案 0 :(得分:2)
这个功能可以做你想要的:
func Float2String(i float64) string {
// First see if we have 2 or fewer significant decimal places,
// and if so, return the number with up to 2 trailing 0s.
if i*100 == math.Floor(i*100) {
return strconv.FormatFloat(i, 'f', 2, 64)
}
// Otherwise, just format normally, using the minimum number of
// necessary digits.
return strconv.FormatFloat(i, 'f', -1, 64)
}
答案 1 :(得分:1)
答案 2 :(得分:1)
使用strconv.FormatFloat
,例如:
https://play.golang.org/p/wNe3b6d7p0
package main
import (
"fmt"
"strconv"
)
func main() {
fmt.Println(strconv.FormatFloat(0, 'f', 2, 64))
fmt.Println(strconv.FormatFloat(0.0000003, 'f', -1, 64))
}
0.00
0.0000003
有关其他格式选项和模式,请参阅链接文档。