zoukankan      html  css  js  c++  java
  • PHP 浮点型转整型的一个奇怪现象

    起因

      最近通过一个学长的题了解php弱类型的时候,发现了一个奇怪的现象。

    正文

      主要问题在这样一段代码:

    $c=(int)((0.1+$b)*10);

      当$b=0.6,0.8以及其他值的时候都正常

      将关键代码拆开分别检测其类型,如上图

      而当$b=0.7的时候

      显示浮点型的8转成整型就成了7,这是怎么回事?$b为其他数都是正常的,唯独$b=0.7时不正常。

      于是接着测试一下直接将8.0转成整型看看结果

      结果是正常的,并没有变成7

      然后又试试将0.8乘以10再转成整型,看看结果

      结果还是正常的整型8

      于是,再往后推一步,将0.8拆成0.7+0.1

      终于显示不正常结果了,虽然还并不知道是什么原因

      然后接着测试,将0.1换成0.2

      结果是正常的……这就有点纳闷了,难道只有8有影响吗?

      最后再做一个测试,将0.8换成0.08,拆成0.07+0.01,最后乘以100

      结果居然是正常的…很奇怪的现象,不知道是怎么回事

    最后

      后来在百度上大概搜了一下,查不到什么资料,不过找到这样的一篇文章------->【戳我

      这篇文章里说的情况跟我遇到的情况差不多吧

      可能就是浮点型数字转成整型的数字时会损失精度吧

      以后找到更好的解释再补充…

  • 相关阅读:
    使用注解方式定义和配置aop
    javascript 相关小的知识点集合
    javascript ES3小测试
    js事件相关面试题
    前端工程师在面试过程中常遇到的知识点
    跨浏览器事件对象封装
    webstorm我用到的快捷键【不断更新】
    切图技巧分享—圆角背景色
    深入理解css中vertical-align属性
    photoshop CC智能切图
  • 原文地址:https://www.cnblogs.com/hun-ya/p/7236365.html
Copyright © 2011-2022 走看看