Printf中的%g不会给出固定小数位,例如%f或%e

时间:2015-10-15 22:55:36

标签: go

根据these docs %g %e for large exponents, %f otherwise。但是,当我这样做时:

package main

import "fmt"

func main() {
    var a float64 = 2.0
    fmt.Printf("%f\n", a)
    fmt.Printf("%e\n", a)
    fmt.Printf("%g\n", a)
}

我明白了:

2.000000
2.000000e+00
2

为什么%g的输出不包含%e%f等固定小数位?

1 个答案:

答案 0 :(得分:2)

  

Package fmt

     

打印

     

%g的默认精度是最小位数   必须唯一地识别价值

对于值为2.0的一位数给出值2。