about summary refs log tree commit diff
diff options
context:
space:
mode:
authorEelco Dolstra <edolstra@gmail.com>2018-07-03T16·04+0200
committerEelco Dolstra <edolstra@gmail.com>2018-07-03T16·39+0200
commita92ed973e569324b55cddb128f6f638f3ea1985c (patch)
tree53d8d28c233ed213d09afc63d5118bac5284f79b
parent91f49ca1086b43a55e08dfccf1c49eb512a2abc9 (diff)
Store floating point numbers in double precision
Even on 32-bit systems, Value has enough space to hold a double.
-rw-r--r--src/libexpr/value.hh2
-rw-r--r--src/libutil/json.cc1
2 files changed, 2 insertions, 1 deletions
diff --git a/src/libexpr/value.hh b/src/libexpr/value.hh
index 66b41a158400..809772f7c084 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 813b257016e4..0a6fb65f0605 100644
--- a/src/libutil/json.cc
+++ b/src/libutil/json.cc
@@ -31,6 +31,7 @@ template<> void toJSON<unsigned long>(std::ostream & str, const unsigned long &
 template<> void toJSON<long long>(std::ostream & str, const long long & n) { str << n; }
 template<> void toJSON<unsigned long long>(std::ostream & str, const unsigned long long & n) { str << n; }
 template<> void toJSON<float>(std::ostream & str, const float & n) { str << n; }
+template<> void toJSON<double>(std::ostream & str, const double & n) { str << n; }
 
 template<> void toJSON<std::string>(std::ostream & str, const std::string & s)
 {