xref: /PHP-8.0/tests/basic/precision.phpt (revision 7aacc705)
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?>
81--EXPECT--
82INI
83-1
84-1
85OUTPUTS
86123456789.01234567 3.3333333333333335 9.87E+102 10.0000001
87string(89) "a:4:{i:0;d:123456789.01234567;i:1;d:3.3333333333333335;i:2;d:9.87E+102;i:3;d:10.0000001;}"
88array (
89  0 => 123456789.01234567,
90  1 => 3.3333333333333335,
91  2 => 9.87E+102,
92  3 => 10.0000001,
93)
94INI
950
960
97OUTPUTS
981.0E+8 3 1.0E+103 1.0E+1
99string(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;}"
100array (
101  0 => 1.0E+8,
102  1 => 3.0E+0,
103  2 => 1.0E+103,
104  3 => 1.0E+1,
105)
106INI
1079
1089
109OUTPUTS
110123456789 3.33333333 9.87E+102 10.0000001
111string(72) "a:4:{i:0;d:123456789;i:1;d:3.33333333;i:2;d:9.87E+102;i:3;d:10.0000001;}"
112array (
113  0 => 123456789.0,
114  1 => 3.33333333,
115  2 => 9.87E+102,
116  3 => 10.0000001,
117)
118INI
11914
12014
121OUTPUTS
122123456789.01235 3.3333333333333 9.87E+102 10.0000001
123string(83) "a:4:{i:0;d:123456789.01235;i:1;d:3.3333333333333;i:2;d:9.87E+102;i:3;d:10.0000001;}"
124array (
125  0 => 123456789.01235,
126  1 => 3.3333333333333,
127  2 => 9.87E+102,
128  3 => 10.0000001,
129)
130INI
13117
13217
133OUTPUTS
134123456789.01234567 3.3333333333333335 9.8700000000000007E+102 10.000000099999999
135string(111) "a:4:{i:0;d:123456789.01234567;i:1;d:3.3333333333333335;i:2;d:9.8700000000000007E+102;i:3;d:10.000000099999999;}"
136array (
137  0 => 123456789.01234567,
138  1 => 3.3333333333333335,
139  2 => 9.8700000000000007E+102,
140  3 => 10.000000099999999,
141)
142INI
14325
14425
145OUTPUTS
146123456789.0123456716537476 3.33333333333333348136307 9.870000000000000687310143E+102 10.0000000999999993922529
147string(141) "a:4:{i:0;d:123456789.0123456716537476;i:1;d:3.33333333333333348136307;i:2;d:9.870000000000000687310143E+102;i:3;d:10.0000000999999993922529;}"
148array (
149  0 => 123456789.0123456716537476,
150  1 => 3.33333333333333348136307,
151  2 => 9.870000000000000687310143E+102,
152  3 => 10.0000000999999993922529,
153)
154INI
155100
156100
157OUTPUTS
158123456789.01234567165374755859375 3.333333333333333481363069950020872056484222412109375 9.87000000000000068731014283095442748328521861543465424509123736073120616987695396574376473706259651E+102 10.0000000999999993922529029077850282192230224609375
159string(277) "a:4:{i:0;d:123456789.01234567165374755859375;i:1;d:3.333333333333333481363069950020872056484222412109375;i:2;d:9.87000000000000068731014283095442748328521861543465424509123736073120616987695396574376473706259651E+102;i:3;d:10.0000000999999993922529029077850282192230224609375;}"
160array (
161  0 => 123456789.01234567165374755859375,
162  1 => 3.333333333333333481363069950020872056484222412109375,
163  2 => 9.87000000000000068731014283095442748328521861543465424509123736073120616987695396574376473706259651E+102,
164  3 => 10.0000000999999993922529029077850282192230224609375,
165)
166