我正在尝试使用fmt.Printf().
例如,给定浮点值 0.0606060606060606、0.3333333333333333、0.05、0.4 和 0.1818181818181818,我想将每个值格式化为 10 个符文:
0.06060606
0.33333333
0.05
0.4
0.18181818
但我无法理解它是如何完成的。文档说
对于浮点值,宽度设置字段的最小宽度,精度设置小数点后的位数,如果合适,除了 %g/%G 设置总位数。例如,给定 123.45 格式 %6.2f 打印 123.45 而 %.4g 打印 123.5。%e 和 %f 的默认精度为 6;对于 %g,它是唯一标识值所需的最小位数。
因此,如果我使用%f更大的数字将不适合 10 个字符的约束,因此%g是必需的。要获得 10 的最小宽度%10g并获得最大 9 位数(点为 +1),它是%.9g,但是将它们组合起来%10.9g并不像我期望的那样
0.0606060606
0.333333333
0.05
0.4
0.181818182
为什么我得到的字符串是 10 个符文,其他的是 11 个符文,其他的是 12 个符文?
特别是,似乎%.9g总共不会产生9位数字。参见例如:http : //play.golang.org/p/ie9k8bYC7r
德玛西亚99
慕盖茨4494581
相关分类