Fixed floating point truncation on saving
authoradam <adamansky@gmail.com>
Wed, 10 Apr 2013 03:40:03 +0000 (10:40 +0700)
committeradam <adamansky@gmail.com>
Wed, 10 Apr 2013 03:40:03 +0000 (10:40 +0700)
node/ejdb_native.cc
node/tests/t2.js
package.json

index a9b2ebd..5c58503 100644 (file)
@@ -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);
index 918d810..281cd55 100644 (file)
@@ -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();
index 46e6039..e3d80e9 100644 (file)
@@ -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",