xref: /PHP-8.4/ext/bcmath/tests/number/cast.phpt (revision fad899e5)
1--TEST--
2BcMath\Number cast
3--EXTENSIONS--
4bcmath
5--FILE--
6<?php
7
8$values = [
9    '0',
10    '0.0',
11    '2',
12    '1234',
13    '12.0004',
14    '0.1230',
15    1,
16    12345,
17    '-0',
18    '-0.0',
19    '-2',
20    '-1234',
21    '-12.0004',
22    '-0.1230',
23    -1,
24    -12345,
25];
26
27foreach ($values as $value) {
28    $num = new BcMath\Number($value);
29    echo "========== {$value} ==========\n";
30    var_dump([
31        'bool' => (bool) $num,
32        'string' => (string) $num,
33        'array' => (array) $num,
34    ]);
35    echo "\n";
36}
37?>
38--EXPECT--
39========== 0 ==========
40array(3) {
41  ["bool"]=>
42  bool(false)
43  ["string"]=>
44  string(1) "0"
45  ["array"]=>
46  array(2) {
47    ["value"]=>
48    string(1) "0"
49    ["scale"]=>
50    int(0)
51  }
52}
53
54========== 0.0 ==========
55array(3) {
56  ["bool"]=>
57  bool(false)
58  ["string"]=>
59  string(3) "0.0"
60  ["array"]=>
61  array(2) {
62    ["value"]=>
63    string(3) "0.0"
64    ["scale"]=>
65    int(1)
66  }
67}
68
69========== 2 ==========
70array(3) {
71  ["bool"]=>
72  bool(true)
73  ["string"]=>
74  string(1) "2"
75  ["array"]=>
76  array(2) {
77    ["value"]=>
78    string(1) "2"
79    ["scale"]=>
80    int(0)
81  }
82}
83
84========== 1234 ==========
85array(3) {
86  ["bool"]=>
87  bool(true)
88  ["string"]=>
89  string(4) "1234"
90  ["array"]=>
91  array(2) {
92    ["value"]=>
93    string(4) "1234"
94    ["scale"]=>
95    int(0)
96  }
97}
98
99========== 12.0004 ==========
100array(3) {
101  ["bool"]=>
102  bool(true)
103  ["string"]=>
104  string(7) "12.0004"
105  ["array"]=>
106  array(2) {
107    ["value"]=>
108    string(7) "12.0004"
109    ["scale"]=>
110    int(4)
111  }
112}
113
114========== 0.1230 ==========
115array(3) {
116  ["bool"]=>
117  bool(true)
118  ["string"]=>
119  string(6) "0.1230"
120  ["array"]=>
121  array(2) {
122    ["value"]=>
123    string(6) "0.1230"
124    ["scale"]=>
125    int(4)
126  }
127}
128
129========== 1 ==========
130array(3) {
131  ["bool"]=>
132  bool(true)
133  ["string"]=>
134  string(1) "1"
135  ["array"]=>
136  array(2) {
137    ["value"]=>
138    string(1) "1"
139    ["scale"]=>
140    int(0)
141  }
142}
143
144========== 12345 ==========
145array(3) {
146  ["bool"]=>
147  bool(true)
148  ["string"]=>
149  string(5) "12345"
150  ["array"]=>
151  array(2) {
152    ["value"]=>
153    string(5) "12345"
154    ["scale"]=>
155    int(0)
156  }
157}
158
159========== -0 ==========
160array(3) {
161  ["bool"]=>
162  bool(false)
163  ["string"]=>
164  string(1) "0"
165  ["array"]=>
166  array(2) {
167    ["value"]=>
168    string(1) "0"
169    ["scale"]=>
170    int(0)
171  }
172}
173
174========== -0.0 ==========
175array(3) {
176  ["bool"]=>
177  bool(false)
178  ["string"]=>
179  string(3) "0.0"
180  ["array"]=>
181  array(2) {
182    ["value"]=>
183    string(3) "0.0"
184    ["scale"]=>
185    int(1)
186  }
187}
188
189========== -2 ==========
190array(3) {
191  ["bool"]=>
192  bool(true)
193  ["string"]=>
194  string(2) "-2"
195  ["array"]=>
196  array(2) {
197    ["value"]=>
198    string(2) "-2"
199    ["scale"]=>
200    int(0)
201  }
202}
203
204========== -1234 ==========
205array(3) {
206  ["bool"]=>
207  bool(true)
208  ["string"]=>
209  string(5) "-1234"
210  ["array"]=>
211  array(2) {
212    ["value"]=>
213    string(5) "-1234"
214    ["scale"]=>
215    int(0)
216  }
217}
218
219========== -12.0004 ==========
220array(3) {
221  ["bool"]=>
222  bool(true)
223  ["string"]=>
224  string(8) "-12.0004"
225  ["array"]=>
226  array(2) {
227    ["value"]=>
228    string(8) "-12.0004"
229    ["scale"]=>
230    int(4)
231  }
232}
233
234========== -0.1230 ==========
235array(3) {
236  ["bool"]=>
237  bool(true)
238  ["string"]=>
239  string(7) "-0.1230"
240  ["array"]=>
241  array(2) {
242    ["value"]=>
243    string(7) "-0.1230"
244    ["scale"]=>
245    int(4)
246  }
247}
248
249========== -1 ==========
250array(3) {
251  ["bool"]=>
252  bool(true)
253  ["string"]=>
254  string(2) "-1"
255  ["array"]=>
256  array(2) {
257    ["value"]=>
258    string(2) "-1"
259    ["scale"]=>
260    int(0)
261  }
262}
263
264========== -12345 ==========
265array(3) {
266  ["bool"]=>
267  bool(true)
268  ["string"]=>
269  string(6) "-12345"
270  ["array"]=>
271  array(2) {
272    ["value"]=>
273    string(6) "-12345"
274    ["scale"]=>
275    int(0)
276  }
277}
278