PHP 浮点型转整型的一个奇怪现象

原由

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

正文

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

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

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

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

  而当$b=0.7的时候code

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

  因而接着测试一下直接将8.0转成整型看看结果get

 

  结果是正常的,并无变成7class

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

  结果仍是正常的整型8im

  因而,再日后推一步,将0.8拆成0.7+0.1

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

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

 

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

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

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

最后

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

  这篇文章里说的状况跟我遇到的状况差很少吧

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

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

相关文章
相关标签/搜索