precision.phpt 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165
  1. --TEST--
  2. precision setting test
  3. --INI--
  4. precision=14
  5. serialize_precision=17
  6. --FILE--
  7. <?php
  8. $v = array(123456789.012345678901234567890, 10/3, 987e100, 10.0000001);
  9. echo "INI".PHP_EOL;
  10. ini_set('precision', -1);
  11. ini_set('serialize_precision', -1);
  12. echo ini_get('precision'), PHP_EOL;
  13. echo ini_get('serialize_precision'), PHP_EOL;
  14. echo "OUTPUTS".PHP_EOL;
  15. echo join(' ', $v).PHP_EOL;
  16. var_dump(serialize($v));
  17. var_export($v);echo PHP_EOL;
  18. echo "INI".PHP_EOL;
  19. ini_set('precision', 0);
  20. ini_set('serialize_precision', 0);
  21. echo ini_get('precision'), PHP_EOL;
  22. echo ini_get('serialize_precision'), PHP_EOL;
  23. echo "OUTPUTS".PHP_EOL;
  24. echo join(' ', $v).PHP_EOL;
  25. var_dump(serialize($v));
  26. var_export($v);echo PHP_EOL;
  27. echo "INI".PHP_EOL;
  28. ini_set('precision', 9);
  29. ini_set('serialize_precision', 9);
  30. echo ini_get('precision'), PHP_EOL;
  31. echo ini_get('serialize_precision'), PHP_EOL;
  32. echo "OUTPUTS".PHP_EOL;
  33. echo join(' ', $v).PHP_EOL;
  34. var_dump(serialize($v));
  35. var_export($v);echo PHP_EOL;
  36. echo "INI".PHP_EOL;
  37. ini_set('precision', 14);
  38. ini_set('serialize_precision', 14);
  39. echo ini_get('precision'), PHP_EOL;
  40. echo ini_get('serialize_precision'), PHP_EOL;
  41. echo "OUTPUTS".PHP_EOL;
  42. echo join(' ', $v).PHP_EOL;
  43. var_dump(serialize($v));
  44. var_export($v);echo PHP_EOL;
  45. echo "INI".PHP_EOL;
  46. ini_set('precision', 17);
  47. ini_set('serialize_precision', 17);
  48. echo ini_get('precision'), PHP_EOL;
  49. echo ini_get('serialize_precision'), PHP_EOL;
  50. echo "OUTPUTS".PHP_EOL;
  51. echo join(' ', $v).PHP_EOL;
  52. var_dump(serialize($v));
  53. var_export($v);echo PHP_EOL;
  54. echo "INI".PHP_EOL;
  55. ini_set('precision', 25);
  56. ini_set('serialize_precision', 25);
  57. echo ini_get('precision'), PHP_EOL;
  58. echo ini_get('serialize_precision'), PHP_EOL;
  59. echo "OUTPUTS".PHP_EOL;
  60. echo join(' ', $v).PHP_EOL;
  61. var_dump(serialize($v));
  62. var_export($v);echo PHP_EOL;
  63. echo "INI".PHP_EOL;
  64. ini_set('precision', 100);
  65. ini_set('serialize_precision', 100);
  66. echo ini_get('precision'), PHP_EOL;
  67. echo ini_get('serialize_precision'), PHP_EOL;
  68. echo "OUTPUTS".PHP_EOL;
  69. echo join(' ', $v).PHP_EOL;
  70. var_dump(serialize($v));
  71. var_export($v);echo PHP_EOL;
  72. ?>
  73. --EXPECT--
  74. INI
  75. -1
  76. -1
  77. OUTPUTS
  78. 123456789.01234567 3.3333333333333335 9.87E+102 10.0000001
  79. string(89) "a:4:{i:0;d:123456789.01234567;i:1;d:3.3333333333333335;i:2;d:9.87E+102;i:3;d:10.0000001;}"
  80. array (
  81. 0 => 123456789.01234567,
  82. 1 => 3.3333333333333335,
  83. 2 => 9.87E+102,
  84. 3 => 10.0000001,
  85. )
  86. INI
  87. 0
  88. 0
  89. OUTPUTS
  90. 1.0E+8 3 1.0E+103 1.0E+1
  91. string(60) "a:4:{i:0;d:1.0E+8;i:1;d:3.0E+0;i:2;d:1.0E+103;i:3;d:1.0E+1;}"
  92. array (
  93. 0 => 1.0E+8,
  94. 1 => 3.0,
  95. 2 => 1.0E+103,
  96. 3 => 1.0E+1,
  97. )
  98. INI
  99. 9
  100. 9
  101. OUTPUTS
  102. 123456789 3.33333333 9.87E+102 10.0000001
  103. string(72) "a:4:{i:0;d:123456789;i:1;d:3.33333333;i:2;d:9.87E+102;i:3;d:10.0000001;}"
  104. array (
  105. 0 => 123456789.0,
  106. 1 => 3.33333333,
  107. 2 => 9.87E+102,
  108. 3 => 10.0000001,
  109. )
  110. INI
  111. 14
  112. 14
  113. OUTPUTS
  114. 123456789.01235 3.3333333333333 9.87E+102 10.0000001
  115. string(83) "a:4:{i:0;d:123456789.01235;i:1;d:3.3333333333333;i:2;d:9.87E+102;i:3;d:10.0000001;}"
  116. array (
  117. 0 => 123456789.01235,
  118. 1 => 3.3333333333333,
  119. 2 => 9.87E+102,
  120. 3 => 10.0000001,
  121. )
  122. INI
  123. 17
  124. 17
  125. OUTPUTS
  126. 123456789.01234567 3.3333333333333335 9.8700000000000007E+102 10.000000099999999
  127. string(111) "a:4:{i:0;d:123456789.01234567;i:1;d:3.3333333333333335;i:2;d:9.8700000000000007E+102;i:3;d:10.000000099999999;}"
  128. array (
  129. 0 => 123456789.01234567,
  130. 1 => 3.3333333333333335,
  131. 2 => 9.8700000000000007E+102,
  132. 3 => 10.000000099999999,
  133. )
  134. INI
  135. 25
  136. 25
  137. OUTPUTS
  138. 123456789.0123456716537476 3.33333333333333348136307 9.870000000000000687310143E+102 10.0000000999999993922529
  139. string(141) "a:4:{i:0;d:123456789.0123456716537476;i:1;d:3.33333333333333348136307;i:2;d:9.870000000000000687310143E+102;i:3;d:10.0000000999999993922529;}"
  140. array (
  141. 0 => 123456789.0123456716537476,
  142. 1 => 3.33333333333333348136307,
  143. 2 => 9.870000000000000687310143E+102,
  144. 3 => 10.0000000999999993922529,
  145. )
  146. INI
  147. 100
  148. 100
  149. OUTPUTS
  150. 123456789.01234567165374755859375 3.333333333333333481363069950020872056484222412109375 9.87000000000000068731014283095442748328521861543465424509123736073120616987695396574376473706259651E+102 10.0000000999999993922529029077850282192230224609375
  151. string(277) "a:4:{i:0;d:123456789.01234567165374755859375;i:1;d:3.333333333333333481363069950020872056484222412109375;i:2;d:9.87000000000000068731014283095442748328521861543465424509123736073120616987695396574376473706259651E+102;i:3;d:10.0000000999999993922529029077850282192230224609375;}"
  152. array (
  153. 0 => 123456789.01234567165374755859375,
  154. 1 => 3.333333333333333481363069950020872056484222412109375,
  155. 2 => 9.87000000000000068731014283095442748328521861543465424509123736073120616987695396574376473706259651E+102,
  156. 3 => 10.0000000999999993922529029077850282192230224609375,
  157. )