xref: /PHP-7.4/tests/basic/precision.phpt (revision 2e56e14e)
1--TEST--
2precision setting test
3--INI--
4precision=14
5serialize_precision=17
6--FILE--
7<?php
8$v = array(123456789.012345678901234567890, 10/3, 987e100, 10.0000001);
9
10echo "INI".PHP_EOL;
11ini_set('precision', -1);
12ini_set('serialize_precision', -1);
13echo ini_get('precision'), PHP_EOL;
14echo ini_get('serialize_precision'), PHP_EOL;
15echo "OUTPUTS".PHP_EOL;
16echo join(' ', $v).PHP_EOL;
17var_dump(serialize($v));
18var_export($v);echo PHP_EOL;
19
20
21echo "INI".PHP_EOL;
22ini_set('precision', 0);
23ini_set('serialize_precision', 0);
24echo ini_get('precision'), PHP_EOL;
25echo ini_get('serialize_precision'), PHP_EOL;
26echo "OUTPUTS".PHP_EOL;
27echo join(' ', $v).PHP_EOL;
28var_dump(serialize($v));
29var_export($v);echo PHP_EOL;
30
31echo "INI".PHP_EOL;
32ini_set('precision', 9);
33ini_set('serialize_precision', 9);
34echo ini_get('precision'), PHP_EOL;
35echo ini_get('serialize_precision'), PHP_EOL;
36echo "OUTPUTS".PHP_EOL;
37echo join(' ', $v).PHP_EOL;
38var_dump(serialize($v));
39var_export($v);echo PHP_EOL;
40
41echo "INI".PHP_EOL;
42ini_set('precision', 14);
43ini_set('serialize_precision', 14);
44echo ini_get('precision'), PHP_EOL;
45echo ini_get('serialize_precision'), PHP_EOL;
46echo "OUTPUTS".PHP_EOL;
47echo join(' ', $v).PHP_EOL;
48var_dump(serialize($v));
49var_export($v);echo PHP_EOL;
50
51echo "INI".PHP_EOL;
52ini_set('precision', 17);
53ini_set('serialize_precision', 17);
54echo ini_get('precision'), PHP_EOL;
55echo ini_get('serialize_precision'), PHP_EOL;
56echo "OUTPUTS".PHP_EOL;
57echo join(' ', $v).PHP_EOL;
58var_dump(serialize($v));
59var_export($v);echo PHP_EOL;
60
61echo "INI".PHP_EOL;
62ini_set('precision', 25);
63ini_set('serialize_precision', 25);
64echo ini_get('precision'), PHP_EOL;
65echo ini_get('serialize_precision'), PHP_EOL;
66echo "OUTPUTS".PHP_EOL;
67echo join(' ', $v).PHP_EOL;
68var_dump(serialize($v));
69var_export($v);echo PHP_EOL;
70
71echo "INI".PHP_EOL;
72ini_set('precision', 100);
73ini_set('serialize_precision', 100);
74echo ini_get('precision'), PHP_EOL;
75echo ini_get('serialize_precision'), PHP_EOL;
76echo "OUTPUTS".PHP_EOL;
77echo join(' ', $v).PHP_EOL;
78var_dump(serialize($v));
79var_export($v);echo PHP_EOL;
80--EXPECT--
81INI
82-1
83-1
84OUTPUTS
85123456789.01234567 3.3333333333333335 9.87E+102 10.0000001
86string(89) "a:4:{i:0;d:123456789.01234567;i:1;d:3.3333333333333335;i:2;d:9.87E+102;i:3;d:10.0000001;}"
87array (
88  0 => 123456789.01234567,
89  1 => 3.3333333333333335,
90  2 => 9.87E+102,
91  3 => 10.0000001,
92)
93INI
940
950
96OUTPUTS
971.0E+8 3 1.0E+103 1.0E+1
98string(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;}"
99array (
100  0 => 1.0E+8,
101  1 => 3.0E+0,
102  2 => 1.0E+103,
103  3 => 1.0E+1,
104)
105INI
1069
1079
108OUTPUTS
109123456789 3.33333333 9.87E+102 10.0000001
110string(72) "a:4:{i:0;d:123456789;i:1;d:3.33333333;i:2;d:9.87E+102;i:3;d:10.0000001;}"
111array (
112  0 => 123456789.0,
113  1 => 3.33333333,
114  2 => 9.87E+102,
115  3 => 10.0000001,
116)
117INI
11814
11914
120OUTPUTS
121123456789.01235 3.3333333333333 9.87E+102 10.0000001
122string(83) "a:4:{i:0;d:123456789.01235;i:1;d:3.3333333333333;i:2;d:9.87E+102;i:3;d:10.0000001;}"
123array (
124  0 => 123456789.01235,
125  1 => 3.3333333333333,
126  2 => 9.87E+102,
127  3 => 10.0000001,
128)
129INI
13017
13117
132OUTPUTS
133123456789.01234567 3.3333333333333335 9.8700000000000007E+102 10.000000099999999
134string(111) "a:4:{i:0;d:123456789.01234567;i:1;d:3.3333333333333335;i:2;d:9.8700000000000007E+102;i:3;d:10.000000099999999;}"
135array (
136  0 => 123456789.01234567,
137  1 => 3.3333333333333335,
138  2 => 9.8700000000000007E+102,
139  3 => 10.000000099999999,
140)
141INI
14225
14325
144OUTPUTS
145123456789.0123456716537476 3.33333333333333348136307 9.870000000000000687310143E+102 10.0000000999999993922529
146string(141) "a:4:{i:0;d:123456789.0123456716537476;i:1;d:3.33333333333333348136307;i:2;d:9.870000000000000687310143E+102;i:3;d:10.0000000999999993922529;}"
147array (
148  0 => 123456789.0123456716537476,
149  1 => 3.33333333333333348136307,
150  2 => 9.870000000000000687310143E+102,
151  3 => 10.0000000999999993922529,
152)
153INI
154100
155100
156OUTPUTS
157123456789.01234567165374755859375 3.333333333333333481363069950020872056484222412109375 9.87000000000000068731014283095442748328521861543465424509123736073120616987695396574376473706259651E+102 10.0000000999999993922529029077850282192230224609375
158string(277) "a:4:{i:0;d:123456789.01234567165374755859375;i:1;d:3.333333333333333481363069950020872056484222412109375;i:2;d:9.87000000000000068731014283095442748328521861543465424509123736073120616987695396574376473706259651E+102;i:3;d:10.0000000999999993922529029077850282192230224609375;}"
159array (
160  0 => 123456789.01234567165374755859375,
161  1 => 3.333333333333333481363069950020872056484222412109375,
162  2 => 9.87000000000000068731014283095442748328521861543465424509123736073120616987695396574376473706259651E+102,
163  3 => 10.0000000999999993922529029077850282192230224609375,
164)
165