From d1784b490cedc98946865a16b990c28c1626be3b Mon Sep 17 00:00:00 2001 From: adam Date: Wed, 10 Apr 2013 10:40:03 +0700 Subject: [PATCH] Fixed floating point truncation on saving --- node/ejdb_native.cc | 4 ++-- node/tests/t2.js | 9 +++++++++ package.json | 2 +- 3 files changed, 12 insertions(+), 3 deletions(-) diff --git a/node/ejdb_native.cc b/node/ejdb_native.cc index a9b2ebd..5c58503 100644 --- a/node/ejdb_native.cc +++ b/node/ejdb_native.cc @@ -436,9 +436,9 @@ namespace ejdb { double nv = pv->NumberValue(); double ipart; if (modf(nv, &ipart) == 0.0) { - bson_append_double(bs, *spn, nv); - } else { bson_append_long(bs, *spn, pv->IntegerValue()); + } else { + bson_append_double(bs, *spn, nv); } } else if (pv->IsNull()) { bson_append_null(bs, *spn); diff --git a/node/tests/t2.js b/node/tests/t2.js index 918d810..281cd55 100644 --- a/node/tests/t2.js +++ b/node/tests/t2.js @@ -438,6 +438,15 @@ module.exports.testCreateCollectionOn$upsert = function(test) { }; +module.exports.testFPIssue = function(test) { + test.ok(jb); + jb.save("test", {x: 2.3434343}); + var x = jb.findOne("test"); + test.equal(x.x, 2.3434343); + test.done(); +}; + + module.exports.testClose = function(test) { test.ok(jb); jb.close(); diff --git a/package.json b/package.json index 46e6039..e3d80e9 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name" : "ejdb", - "version" : "1.0.68", + "version" : "1.0.69", "main" : "node/ejdb.js", "homepage" : "http://ejdb.org", "description" : "EJDB - Embedded JSON Database engine", -- 2.7.4