Browse Source

Fix `%e` printing incorrect precision

For example, `%.2e` with 30.56 as the value would produce `30.60e+01`,
as opposed to C's printf producing `30.6e+01`.
Feoramund 1 year ago
parent
commit
8c111f1baf
1 changed files with 1 additions and 2 deletions
  1. 1 2
      core/strconv/generic_float.odin

+ 1 - 2
core/strconv/generic_float.odin

@@ -104,8 +104,7 @@ generic_ftoa :: proc(buf: []byte, val: f64, fmt: byte, precision, bit_size: int)
 	} else {
 		switch fmt {
 		case 'e', 'E':
-			prec += 1
-			decimal.round(d, prec)
+			decimal.round(d, prec + 1)
 		case 'f', 'F':
 			decimal.round(d, d.decimal_point+prec)
 		case 'g', 'G':