From a92ed973e569324b55cddb128f6f638f3ea1985c Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Tue, 3 Jul 2018 18:04:51 +0200 Subject: [PATCH] Store floating point numbers in double precision Even on 32-bit systems, Value has enough space to hold a double. --- src/libexpr/value.hh | 2 +- src/libutil/json.cc | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/libexpr/value.hh b/src/libexpr/value.hh index 66b41a158..809772f7c 100644 --- a/src/libexpr/value.hh +++ b/src/libexpr/value.hh @@ -44,7 +44,7 @@ class JSONPlaceholder; typedef long NixInt; -typedef float NixFloat; +typedef double NixFloat; /* External values must descend from ExternalValueBase, so that * type-agnostic nix functions (e.g. showType) can be implemented diff --git a/src/libutil/json.cc b/src/libutil/json.cc index 813b25701..0a6fb65f0 100644 --- a/src/libutil/json.cc +++ b/src/libutil/json.cc @@ -31,6 +31,7 @@ template<> void toJSON(std::ostream & str, const unsigned long & template<> void toJSON(std::ostream & str, const long long & n) { str << n; } template<> void toJSON(std::ostream & str, const unsigned long long & n) { str << n; } template<> void toJSON(std::ostream & str, const float & n) { str << n; } +template<> void toJSON(std::ostream & str, const double & n) { str << n; } template<> void toJSON(std::ostream & str, const std::string & s) {