/
7.学习PHP中的任意精度扩展函数.php
44 lines (32 loc) · 1.38 KB
/
7.学习PHP中的任意精度扩展函数.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
<?php
$a = 0.58;
echo $a * 100, PHP_EOL; // 58
echo intval($a * 100), PHP_EOL; // 57
echo (int) ($a * 100), PHP_EOL; // 57
echo intval(bcmul($a, 100)), PHP_EOL; // 58
echo json_encode([
'a1' => $a, // "a1":0.58
'a2' => $a * 100, // "a2":57.99999999999999
'a3' => intval($a * 100), // "a3":57
'a4' => floatval($a * 100), // "a4":57.99999999999999
'a5' => floatval($a), // "a5":0.58
'a6' => intval(bcmul($a, 100)), // "a6":58
'a7' => 1.1 + 2.2, // "a7":3.3000000000000003
'a8' => floatval(bcadd(1.1, 2.2, 10)), // "a8":3.3
'a9' => 2 - 1.1, // "a9":0.8999999999999999
'a10' => floatval(bcsub(2, 1.1, 10)), // "a10":0.9
'a11' => floatval($a * 100 / 10), // "a11":5.799999999999999
'a12' => floatval(bcdiv($a * 100, 10, 10)), // "a12":5.8
'a13' => 10 % 2.1, // "a13":0
'a14' => bcmod(10, 2.1), // "a14":"1"
'a15' => pow(1.1, 2), // "a15":1.2100000000000002
'a16' => bcpow(1.1, 2, 30), // "a16":"1.210000000000000000000000000000"
'a17' => sqrt(1.1), // "a17":1.0488088481701516
'a18' => bcsqrt(1.1, 30), // "a18":"1.048808848170151546991453513679"
]), PHP_EOL;
echo bccomp(1, 2), PHP_EOL; // -1
echo bccomp(1.00001, 1, 3), PHP_EOL; // 0
echo bccomp(1.00001, 1, 5), PHP_EOL; // 1
bcscale(30);
echo bcmod(bcpow(5, 2), 2), PHP_EOL; // 1.000000000000000000000000000000
echo bcpowmod(5, 2, 2), PHP_EOL; // 1.000000000000000000000000000000