<?php
$a = 9.45*100;
var_dump($a);
var_dump(intval($a));
$a = 945*1.00;
var_dump($a);
var_dump(intval($a));
?>

运行结果:float(945) int(944) float(945) int(945)

这个代码虽然把结果都告诉了,但是很多人还是看不懂,这样就解释不了为什么会有意想不到的转型情况发生。
网上对这个情况讲的都模棱两可不知所云的。我在这里简单的解释下:
9.45这个数字在我们看到的是这样的,但是机器内部却不是这个,而是9.44999999999999999...。所以:
9.449999*100 = 944.9999。这样就可以看懂了吧?intval把尾数直接去掉了,这个叫神马来的呵呵忘了名字了.这样说来,intval和floor()函数差不多咯。呵呵。这个也是我之前没有察觉到的。也没注意到intval会向下舍入。
而 1.00就没有什么1.0099999这样的了,所以945*1.00就会出现一个float的945.那intval去转型自然就不会出现944的情况了。
还有些经典考试题,如:intval((0.1+0.7)*10) 等于7而不是8的。都是这个道理。

 

最新文章

  1. 重新想象 Windows 8 Store Apps (66) - 后台任务: 下载和上传
  2. 解决dede搜索页面只能显示10条信息解决方案
  3. 石英晶振频率后面带的PPM是什么单位
  4. tomcat启动Flash退出错误不能被视为解决该错误信息
  5. [Linux] PHP程序员玩转Linux系列-telnet轻松使用邮箱
  6. ViewData 不可以有特殊字符,比如. ,等只允许数字字符和空格
  7. jsp内置对象-page对象
  8. eclipse安装及配置pydev
  9. https协议为什么比http协议更加安全
  10. netty 对象序列化传输示例
  11. 使用 Weinre 调试移动网站
  12. 5.3Python函数(三)
  13. E: Unable to locate package openjdk-8-jdk 及java version 切换
  14. boost 1.67编译VS2017版本
  15. 单片机中printf函数的重映射
  16. RNA Spike-in Control(转)
  17. DeepWalk学习
  18. 初始化android studio的方法
  19. Android实践项目汇报(总结)
  20. redis sentinel无法启动问题

热门文章

  1. Storm 提交任务过程详解 (不对地方麻烦指正)
  2. Java你不知道的那些事儿—Java隐藏特性
  3. Jquery获取dom上的绑定事件
  4. hexo+yilia页脚添加总访问量
  5. 【转】api网关
  6. python调用html内的js方法
  7. Python之函数2 嵌套,作用域和闭包(Day12)
  8. Linux基础系列:常用命令(3)
  9. 工作了3年的JAVA程序员应该具备什么技能?(转)
  10. active scaffold