THRIFT-3744 The precision should be 17 (16 bits need after dot) after dot for double type.

This closes #948
diff --git a/lib/d/src/thrift/protocol/json.d b/lib/d/src/thrift/protocol/json.d
index 223d3a3..56a71da 100644
--- a/lib/d/src/thrift/protocol/json.d
+++ b/lib/d/src/thrift/protocol/json.d
@@ -133,7 +133,8 @@
     bool escapeNum = value !is null || context_.escapeNum;
 
     if (value is null) {
-      value = format("%.16g", dub);
+      /* precision is 17 */
+      value = format("%.17g", dub);
     }
 
     if (escapeNum) trans_.write(STRING_DELIMITER);