PHP浮点数运算

PHP浮点数运算

    你看似有穷的小数, 在计算机的二进制表示里却是无穷的。

    1、浮点数运算出现的问题

 1 <?php
 2 
 3 //
 4 $a = 0.1;
 5 $b = 0.7;
 6 $c = intval(($a + $b) * 10);
 7 echo $c."<br>";
 8 // 输出:7
 9 
10 // 减
11 $a = 100;
12 $b = 99.98;
13 $c = $a - $b;
14 echo $c."<br>";
15 // 输出:0.019999999999996
16 
17 // 乘
18 $a = 0.58;
19 $b = 100;
20 $c = intval($a * $b);
21 echo $c."<br>";
22 //输出:57
23 
24 // 除
25 $a = 0.7;
26 $b = 0.1;
27 $c = intval($a / $b);
28 echo $c."<br>";
29 // 输出:6

    上面计算的结果显然不符合我们的预期,要搞明白其中的原因, 首先我们要知道浮点数的表示(IEEE 754)。

   2、 IEEE754标准

   IEEE754是20世纪80年代以来最广泛使用的浮点数运算标准,为许多CPU与浮点运算器所采用。这个标准定义了表示浮点数的格式。
   我们现在在用的计算机基本上都是基于这个标准来表示浮点数的,包括我们熟悉的短浮点数(float)、长浮点数(double),它们俩的表示方法相同,区别仅仅是阶码E和位数M的位数不同。

   浮点数IEEE 754的标准形式:

    PHP浮点数运算
 3、任意精度数学函数


 4、浮点数与定点数

PHP浮点数运算

上一篇:在jsp页面使用vue


下一篇:Unicode编码转换, MD5加密,URL16进制加密解密