diff options
| -rw-r--r-- | ext/standard/var.c | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/ext/standard/var.c b/ext/standard/var.c index 5d7301f092..ae709201ca 100644 --- a/ext/standard/var.c +++ b/ext/standard/var.c @@ -53,9 +53,11 @@ void php_var_dump(pval **struc, int level) PHPWRITE(&buf[1], i - 1); break; - case IS_DOUBLE: - i = sprintf(buf, "%*cfloat(%g)\n", level, ' ', (*struc)->value.dval); - PHPWRITE(&buf[1], i - 1); + case IS_DOUBLE: { + ELS_FETCH(); + i = sprintf(buf, "%*cfloat(%.*G)\n", level, ' ', (int) EG(precision), (*struc)->value.dval); + PHPWRITE(&buf[1], i - 1); + } break; case IS_STRING: @@ -199,9 +201,11 @@ void php_var_serialize(pval *buf, pval **struc) STR_CAT(buf, s, slen); return; - case IS_DOUBLE: - slen = sprintf(s, "d:%g;", (*struc)->value.dval); - STR_CAT(buf, s, slen); + case IS_DOUBLE: { + ELS_FETCH(); + slen = sprintf(s, "d:%.*G;",(int) EG(precision), (*struc)->value.dval); + STR_CAT(buf, s, slen); + } return; case IS_STRING:{ |
