今天工作中遇见了一个浮点数转整形的问题,特此记录一下,防止以后再次踩坑。

实例:

$f = 0.58;
var_dump(intval($f * 100.0));

也许你认为他会输出58,但是实际上他输出的是57.

原因是作为浮点型数据,其精度已经损失了一部分,达不到完全精确。所以永远不要相信浮点数结果精确到了最后一位,也永远不要比较两个浮点数是否相等。

php中浮点数是弱类型,对于整数或者经过运算以后结果是整数的浮点数,php能当作整数对待,但类型还是浮点型不变。但如果经过运算以后不是整数,那php就把结果当作严格的浮点数对待了  

在实际的开发中我们可以使用如下逻辑来解决这种境况

intval(round(floatval($value) * 100));

intval(strval($value * 100));

最新文章

  1. Ajax浅学习
  2. 使用junit测试用例
  3. Web前端开发基础 第四课(认识CSS样式)
  4. 【Python】python代码如何调试?
  5. hdu 3046 Pleasant sheep and big big wolf 最小割
  6. mysql show命令集合
  7. hbase meta表的结构
  8. Vim cscope
  9. java中IO流的操作
  10. IOS - view之间切换
  11. 2.5.3 使用alertDialog创建自定义对话框
  12. IE常见的CSS的BUG(一)
  13. 如何安装chrome扩展,以json-handle
  14. Android ORM SQL Top 5
  15. css3+js 实现砸金蛋效果
  16. Discuz开发帮助
  17. Oracle 动态SQL 注意细节 ORA-00911: 无效字符
  18. SpringMVC+Shiro不拦截静态资源配置
  19. 比特币VS美元兑换查询网址
  20. ssh服务的最佳实践

热门文章

  1. C# 处理PPT水印(三)—— 在PPT中添加多行(平铺)文本水印效果
  2. 敏捷史话(八):敏捷的破局之道——Martin Fowler
  3. 干货满满-原来这才是hooks-React Hooks使用心得
  4. 阿里的Easyexcel读取Excel文件(最新版本)
  5. Linux 文件和目录管理
  6. win8 下删除服务
  7. 在 .NET Core 中构建 REST API
  8. python学习9 函数的基础知识
  9. 攻防世界 reverser secret-galaxy-300
  10. 力扣 - 剑指 Offer 37. 序列化二叉树