summaryrefslogtreecommitdiff
path: root/marshal.c
diff options
context:
space:
mode:
Diffstat (limited to 'marshal.c')
-rw-r--r--marshal.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/marshal.c b/marshal.c
index 857dd7361c..edcb9556cb 100644
--- a/marshal.c
+++ b/marshal.c
@@ -369,7 +369,10 @@ w_float(double d, struct dump_arg *arg)
else w_cstr("0", arg);
}
else {
- w_bytes(buf, ruby_dbl2cstr(d, buf, (int)sizeof(buf)), arg);
+ int len = ruby_dbl2cstr(d, buf, (int)sizeof(buf));
+ if (len > 2 && buf[len - 1] == '0' && buf[len - 2] == '.')
+ len -= 2;
+ w_bytes(buf, len, arg);
}
}