From 0f24735d9eaaed341a946fca98c3a7b4d5f8f5cf Mon Sep 17 00:00:00 2001 From: Theodore Turocy Date: Fri, 18 Sep 2026 18:29:27 +0100 Subject: [PATCH] Accept explicit + after 'e'/'E' when parsing scientific notation into Rational --- src/core/rational.cc | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/core/rational.cc b/src/core/rational.cc index 1e440765f2..2581f35f68 100644 --- a/src/core/rational.cc +++ b/src/core/rational.cc @@ -562,6 +562,9 @@ template <> Rational lexical_cast(const std::string &f) expsign = -1; ch = f[index++]; } + else if (ch == '+') { + ch = f[index++]; + } while (ch >= '0' && ch <= '9' && index <= length) { exponent *= 10; exponent += (ch - '0'); @@ -589,6 +592,9 @@ template <> Rational lexical_cast(const std::string &f) expsign = -1; ch = f[index++]; } + else if (ch == '+') { + ch = f[index++]; + } while (ch >= '0' && ch <= '9' && index <= length) { exponent *= 10; exponent += (ch - '0');