保留四位小数运算(1.0001-1)会是什么结果_PHP_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > PHP > 保留四位小数运算(1.0001-1)会是什么结果

保留四位小数运算(1.0001-1)会是什么结果

 2013/7/26 23:19:31  jinhanjiang  程序员俱乐部  我要评论(0)
  • 摘要:刚做一个简单的减法运算,如题开始很所以然的认为等于0.0001,结果确不是<?phpecho1.0001-1;//结果等于:9.9999999999989E-5,我和我的小伙伴们都惊呆了。。。?>小数位的减法都是这样吗?当保留两位小数时,结果还是我们正常想像的那样。<?phpecho1.01-1;//结果等于:0.01?>那如果要进行如题的运算,该怎么办呢?php手册中有专门的方法bcsub<?phpechobcsub(1.0001,1,4);//结果就等于:0
  • 标签:什么 结果

刚做一个简单的减法运算,如题
开始很所以然的认为等于0.0001,结果确不是

class="php" name="code">
<?php
echo 1.0001 - 1; //结果等于:9.9999999999989E-5,我和我的小伙伴们都惊呆了。。。
?>


小数位的减法都是这样吗?当保留两位小数时,结果还是我们正常想像的那样。

<?php
echo 1.01 - 1; //结果等于:0.01
?>


那如果要进行如题的运算,该怎么办呢?php手册中有专门的方法bcsub

<?php
echo bcsub(1.0001 , 1, 4); //结果就等于:0.0001了。注意:后面的4,保留4位小数不能少。要不结果也就不对了
?>


这里再提一点,再大一些的运算如14位以上的运算,这个方法也就不能用了

<?php
echo bcsub(98765432101234 , 12345678901234); //14位运算结果等于:86419753200000
echo bcsub(987654321012345 , 123456789012345); //15位运算结果等于:0
?>


最后,大家算钱的时候一定要注意了。不要到时候就悲剧了。
发表评论
用户名: 匿名