浏览模式: 描述 | 列表 2009年-09月的文章

PHP浮点数要注意的问题

作者: 我不是鱼 (2009-09-28 22:06)分类: PHP   标签: 浮点数 转整  

PHP代码
  1. <?php   
  2. $a = 8.45*100;   
  3. var_dump($a);   
  4. var_dump(intval($a));   
  5.   
  6. $a = 845*1.00;   
  7. var_dump($a);   
  8. var_dump(intval($a));   
  9. ?>   
  10.   


这段程序,我以为输入4个都是845。不过结果出乎意料。php 5.29输入的结果是

float(845)
int(844)
float(845)
int(845)

为什么两个都是845的浮点数,转整时一个事845一个是844?php手册上的说法是:
显然简单的十进制分数如同 0.1 或 0.7 不能在不丢失一点点精度的情况下转换为内部二进制的格式。这就会造成混乱的结果:例如,floor((0.1+0.7)*10) 通常会返回 7 而不是预期中的 8,因为该结果内部的表示其实是类似 7.9999999999...。

不过仍然很费解

PHP代码
  1. <?php   
  2. var_dump(floor((0.1+0.7)*10));   
  3. var_dump(floor((0.1+0.6)*10));   
  4. ?>   


两个都是 fl...

查看原文评论 (0) | 浏览 (5206)


博主


« 2019年-05月 »
28 29 30 1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31 1

分类


热门标签


最新评论


最近留言


概要

  • 文章数量: 41
  • 分类数量: 9
  • 标签数量: 73
  • 评论数量: 159
  • 浏览次数: 2915397

友情链接