diff --git a/core/math/expression.cpp b/core/math/expression.cpp index b447d098872..0ddac9744ef 100644 --- a/core/math/expression.cpp +++ b/core/math/expression.cpp @@ -361,6 +361,7 @@ Error Expression::_get_token(Token &r_token) { is_float = true; } else if (c == 'e') { reading = READING_EXP; + is_float = true; } else { reading = READING_DONE; } @@ -397,9 +398,6 @@ Error Expression::_get_token(Token &r_token) { exp_beg = true; } else if ((c == '-' || c == '+') && !exp_sign && !exp_beg) { - if (c == '-') { - is_float = true; - } exp_sign = true; } else { diff --git a/tests/core/math/test_expression.h b/tests/core/math/test_expression.h index 5a894b20f33..6e3be541b04 100644 --- a/tests/core/math/test_expression.h +++ b/tests/core/math/test_expression.h @@ -137,7 +137,7 @@ TEST_CASE("[Expression] Scientific notation") { expression.parse("2e5") == OK, "The expression should parse successfully."); CHECK_MESSAGE( - Math::is_equal_approx(double(expression.execute()), 25), + Math::is_equal_approx(double(expression.execute()), 2e5), "The expression should return the expected result."); CHECK_MESSAGE(