diff --git a/vlib/v/scanner/scanner.v b/vlib/v/scanner/scanner.v index f31a4b71195cec..99b06bb4957f52 100644 --- a/vlib/v/scanner/scanner.v +++ b/vlib/v/scanner/scanner.v @@ -507,7 +507,7 @@ fn (mut s Scanner) ident_dec_number() string { if !s.pref.translated { s.error('this number has unsuitable digit `${first_wrong_digit.str()}`') } - } else if s.text[s.pos - 1] in [`e`, `E`] { + } else if s.text[s.pos - 1] in [`e`, `E`] && !s.is_inside_string { // error check: 5e s.pos-- // adjust error position s.error('exponent has no digits') diff --git a/vlib/v/tests/builtin_strings_and_interpolation/string_interpolation_test.v b/vlib/v/tests/builtin_strings_and_interpolation/string_interpolation_test.v index 1d2df7bf3f160a..de53c6174c6c76 100644 --- a/vlib/v/tests/builtin_strings_and_interpolation/string_interpolation_test.v +++ b/vlib/v/tests/builtin_strings_and_interpolation/string_interpolation_test.v @@ -233,3 +233,9 @@ fn test_interpo_non_ascii_characters() { hello := '你好' assert '${hello},世界!' == '你好,世界!' } + +fn test_float_exponent_sign() { + a := 1.234 + assert '${a:4.1}' == ' 1.2' + assert '${a:4.1}' == ' 1.2' +}