summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--document/src/vespa/document/select/parse_utils.cpp4
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);