diff options
author | Hayden <Haydenleete@gmail.com> | 2022-02-05 00:14:49 +1300 |
---|---|---|
committer | Hayden <Haydenleete@gmail.com> | 2022-02-05 16:34:26 +1300 |
commit | 1305ff92f79f3ae4d84e8a92f5caedda94e076cb (patch) | |
tree | eba982c8f2f49e16b2b9f000c6c33a36883bf2a4 | |
parent | 29c4644890c82f38f54553fa127a9661e7a0c75a (diff) |
Make parser treat all exponent literals as float
-rw-r--r-- | core/math/expression.cpp | 4 | ||||
-rw-r--r-- | tests/core/math/test_expression.h | 2 |
2 files changed, 2 insertions, 4 deletions
diff --git a/core/math/expression.cpp b/core/math/expression.cpp index 0bd8a0abb5..87f8a95970 100644 --- a/core/math/expression.cpp +++ b/core/math/expression.cpp @@ -373,6 +373,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; } @@ -409,9 +410,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 5a894b20f3..6e3be541b0 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( |