diff options
-rw-r--r-- | document/src/vespa/document/select/parse_utils.cpp | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/document/src/vespa/document/select/parse_utils.cpp b/document/src/vespa/document/select/parse_utils.cpp index 90112ac9c23..80ee4ef9dfb 100644 --- a/document/src/vespa/document/select/parse_utils.cpp +++ b/document/src/vespa/document/select/parse_utils.cpp @@ -23,7 +23,9 @@ bool parse_double(const char* str, size_t len, double& out) { auto res = std::from_chars(str, str+len, out); if (res.ec == std::errc::result_out_of_range) { - out = std::numeric_limits<double>::infinity(); + out = (str[0] == '-') + ? -std::numeric_limits<double>::infinity() + : std::numeric_limits<double>::infinity(); return true; } return (res.ec == std::errc()) && (res.ptr == str+len); |