For floating-point values, width sets the minimum width of the field and
precision sets the number of places after the decimal, if appropriate,
- except that for %g/%G precision sets the total number of significant
- digits. For example, given 12.345 the format %6.3f prints 12.345 while
- %.3g prints 12.3. The default precision for %e, %f and %#g is 6; for %g it
- is the smallest number of digits necessary to identify the value uniquely.
+ except that for %g/%G precision sets the maximum number of significant
+ digits (trailing zeros are removed). For example, given 12.345 the format
+ %6.3f prints 12.345 while %.3g prints 12.3. The default precision for %e, %f
+ and %#g is 6; for %g it is the smallest number of digits necessary to identify
+ the value uniquely.
For complex numbers, the width and precision apply to the two
components independently and the result is parenthesized, so %f applied
// 'g' ('e' for large exponents, 'f' otherwise), or
// 'G' ('E' for large exponents, 'f' otherwise).
//
-// The precision prec controls the number of digits
-// (excluding the exponent) printed by the 'e', 'E', 'f', 'g', and 'G' formats.
+// The precision prec controls the number of digits (excluding the exponent)
+// printed by the 'e', 'E', 'f', 'g', and 'G' formats.
// For 'e', 'E', and 'f' it is the number of digits after the decimal point.
-// For 'g' and 'G' it is the total number of digits.
+// For 'g' and 'G' it is the maximum number of significant digits (trailing
+// zeros are removed).
// The special precision -1 uses the smallest number of digits
// necessary such that ParseFloat will return f exactly.
func FormatFloat(f float64, fmt byte, prec, bitSize int) string {