首先看看以下代码:
代码1:
<?php $a=0.1; $b=0.7; if($a+$b==0.8) { echo "1"; } else{ echo "2"; } ?>
代码2:
<?php $f = 0.58; var_dump(intval($f * 100)); //为啥输出57 ?>
以上问题引用鸟哥的话就是"你看似有穷的小数, 在计算机的二进制表示里却是无穷的".
但是这都不要紧,因为php还提供了高精度函数库。
解决代码1:
<?php $a=0.1; $b=0.7; if(bcadd($a,$b,1)==0.8) { echo "1"; } else{ echo "2"; } ?>
解决代码2:
<?php $f = 0.58; var_dump(bcadd($f * 100,0,0)); ?>
其实在其他语言中也是存在的,例如以下c#
static void Main(string[] args) { double a = 0.1; double b = 0.7; if (a+b==0.8) { Console.WriteLine("ok"); } else { Console.WriteLine("failed!"); } Console.ReadKey(); }
开启错误提示代码:ini_set("display_errors", "On"); error_reporting(E_ALL | E_STRICT);关闭错误提示代码:error_reporting(E_ALL ^&n...
001源码:/* * $xml_str是xml字符串 */ function xmltoarray($xml_str) { //禁止XML实体扩展攻击 libxml_disable_entity_loader(true); //拒绝包含...
php多进程应用场景主要是非web端,fpm下是不支持多进程的,非类linux操作系统都不支持,请在cli模式使用.可以使用多进程做任务分发,批量计算,批量文件处理,批量爬虫,网络运维等等。下面看一份简单的入门demo//创建子进程 $pid=pcntl_fork(); //返回-1,创建失败,不...
使用php函数array_multisort()即可实现和SQL一样的order by排序. 例如我们需要对会员表按照主键降序排列,年龄升序排列://会员表数据 $list = []; $list[] = ['mid' =>&n...
(1).config.php 配置文件<?php /** * RabbitMQ_Config */ $config = [ 'host' => ...
<?php /** * daemonize让当前脚本为守护进程执行 * @param string $callback 匿名函数 */ function daemonize($callback) {...