英文:
%g in Printf does not give fixed decimal places like %f or %e
问题
根据这些文档,%g
在大指数时等同于%e
,在其他情况下等同于%f
。然而,当我运行上述代码时,%g
的输出结果为2
,而不像%e
或%f
那样包含固定的小数位。
为什么%g
的输出结果不像%e
或%f
那样包含固定的小数位呢?
英文:
According to these docs %g
is %e for large exponents, %f otherwise
. However, when I do:
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)
}
I get:
2.000000
2.000000e+00
2
Why does the output for %g
not contain fixed decimal places like %e
or %f
?
答案1
得分: 2
打印
%g 的默认精度是最小的数字,足以唯一标识该值。
对于值 2.0,这是一个数字,给出值 2。
英文:
> Package fmt
>
> Printing
>
> The default precision for %g is the smallest number of digits
> necessary to identify the value uniquely
For the value 2.0 that is one digit giving the value 2.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论