Fixed Bug 64760 var_export() does not use full precision for floating-point numbers

This commit is contained in:
Yasuo Ohgaki 2013-10-29 17:24:23 +09:00
parent 69808d698c
commit 4dc4302a30
5 changed files with 36 additions and 36 deletions

View File

@ -784,15 +784,15 @@ string(20) "array (
Iteration 13 Iteration 13
array ( array (
0 => 10.5, 0 => 10.5,
1 => 5.6, 1 => 5.5999999999999996,
) )
array ( array (
0 => 10.5, 0 => 10.5,
1 => 5.6, 1 => 5.5999999999999996,
) )
string(34) "array ( string(49) "array (
0 => 10.5, 0 => 10.5,
1 => 5.6, 1 => 5.5999999999999996,
)" )"

View File

@ -96,9 +96,9 @@ string(1) "0"
-- Iteration: -0.1 -- -- Iteration: -0.1 --
-0.1 -0.10000000000000001
-0.1 -0.10000000000000001
string(4) "-0.1" string(20) "-0.10000000000000001"
-- Iteration: 10.0000000000000000005 -- -- Iteration: 10.0000000000000000005 --
@ -120,9 +120,9 @@ string(6) "100000"
-- Iteration: 1e-5 -- -- Iteration: 1e-5 --
1.0E-5 1.0000000000000001E-5
1.0E-5 1.0000000000000001E-5
string(6) "1.0E-5" string(21) "1.0000000000000001E-5"
-- Iteration: 1e+5 -- -- Iteration: 1e+5 --
@ -144,9 +144,9 @@ string(6) "100000"
-- Iteration: 1E-5 -- -- Iteration: 1E-5 --
1.0E-5 1.0000000000000001E-5
1.0E-5 1.0000000000000001E-5
string(6) "1.0E-5" string(21) "1.0000000000000001E-5"
-- Iteration: .5e+7 -- -- Iteration: .5e+7 --
@ -156,20 +156,20 @@ string(7) "5000000"
-- Iteration: .6e-19 -- -- Iteration: .6e-19 --
6.0E-20 6.0000000000000006E-20
6.0E-20 6.0000000000000006E-20
string(7) "6.0E-20" string(22) "6.0000000000000006E-20"
-- Iteration: .05E+44 -- -- Iteration: .05E+44 --
5.0E+42 5.0000000000000001E+42
5.0E+42 5.0000000000000001E+42
string(7) "5.0E+42" string(22) "5.0000000000000001E+42"
-- Iteration: .0034E-30 -- -- Iteration: .0034E-30 --
3.4E-33 3.4000000000000001E-33
3.4E-33 3.4000000000000001E-33
string(7) "3.4E-33" string(22) "3.4000000000000001E-33"
===DONE=== ===DONE===

View File

@ -233,15 +233,15 @@ string(20) "array (
--Iteration: array(10.5, 5.6) -- --Iteration: array(10.5, 5.6) --
array ( array (
0 => 10.5, 0 => 10.5,
1 => 5.6, 1 => 5.5999999999999996,
) )
array ( array (
0 => 10.5, 0 => 10.5,
1 => 5.6, 1 => 5.5999999999999996,
) )
string(34) "array ( string(49) "array (
0 => 10.5, 0 => 10.5,
1 => 5.6, 1 => 5.5999999999999996,
)" )"
@ -274,4 +274,4 @@ string(41) "array (
1 => 'test', 1 => 'test',
)" )"
===DONE=== ===DONE===

View File

@ -436,7 +436,7 @@ PHPAPI void php_var_export_ex(zval **struc, int level, smart_str *buf TSRMLS_DC)
smart_str_append_long(buf, Z_LVAL_PP(struc)); smart_str_append_long(buf, Z_LVAL_PP(struc));
break; break;
case IS_DOUBLE: case IS_DOUBLE:
tmp_len = spprintf(&tmp_str, 0,"%.*H", (int) EG(precision), Z_DVAL_PP(struc)); tmp_len = spprintf(&tmp_str, 0,"%.*H", PG(serialize_precision), Z_DVAL_PP(struc));
smart_str_appendl(buf, tmp_str, tmp_len); smart_str_appendl(buf, tmp_str, tmp_len);
efree(tmp_str); efree(tmp_str);
break; break;

View File

@ -36,22 +36,22 @@ test(1.7e-1000);
===DONE=== ===DONE===
<?php exit(0); ?> <?php exit(0); ?>
--EXPECTF-- --EXPECTF--
1.7E+300 1.7000000000000001E+300
float(1.7E+300) float(1.7E+300)
1.7E+300 1.7E+300
1.7E+300 1.7E+300
------ ------
1.7E-300 1.7000000000000001E-300
float(1.7E-300) float(1.7E-300)
1.7E-300 1.7E-300
1.7E-300 1.7E-300
------ ------
1.7E+79 1.7000000000000002E+79
float(1.7E+79) float(1.7E+79)
1.7E+79 1.7E+79
1.7E+79 1.7E+79
------ ------
1.7E-79 1.6999999999999999E-79
float(1.7E-79) float(1.7E-79)
1.7E-79 1.7E-79
1.7E-79 1.7E-79
@ -71,7 +71,7 @@ float(1.7E+81)
1.7E+81 1.7E+81
1.7E+81 1.7E+81
------ ------
1.7E-81 1.6999999999999999E-81
float(1.7E-81) float(1.7E-81)
1.7E-81 1.7E-81
1.7E-81 1.7E-81
@ -81,7 +81,7 @@ float(I%s)
I%s I%s
I%s I%s
------ ------
1.69998107421E-319 1.6999810742105611E-319
float(1.69998107421E-319) float(1.69998107421E-319)
1.69998107421E-319 1.69998107421E-319
1.69998107421E-319 1.69998107421E-319
@ -91,7 +91,7 @@ float(I%s)
I%s I%s
I%s I%s
------ ------
1.70007988734E-320 1.7000798873397294E-320
float(1.70007988734E-320) float(1.70007988734E-320)
1.70007988734E-320 1.70007988734E-320
1.70007988734E-320 1.70007988734E-320
@ -101,7 +101,7 @@ float(I%s)
I%s I%s
I%s I%s
------ ------
1.69958582169E-321 1.6995858216938881E-321
float(1.69958582169E-321) float(1.69958582169E-321)
1.69958582169E-321 1.69958582169E-321
1.69958582169E-321 1.69958582169E-321