这是PHP的BUG????????????

Demon1221 2003-08-23 12:16:37
<?
if((2.1-1)==1.1) echo "1"."<br>";
if((2.2-1)==1.2) echo "2"."<br>";
if((2.3-1)==1.3) echo "3"."<br>";
if((2.4-1)==1.4) echo "4"."<br>";
if((2.5-1)==1.5) echo "5"."<br>";
if((2.6-1)==1.6) echo "6"."<br>";
if((2.7-1)==1.7) echo "7"."<br>";
if((2.8-1)==1.8) echo "8"."<br>";
if((2.9-1)==1.9) echo "9"."<br>";
?>
我得到的结果是
1
4
5
6
9
弄不明白上面的各行有什么不一样的?
我的环境是IIS5 +WIN2K SERVER +php-4.3.2-Win32(安全模式)
大家测试一下 看看是不是真的有问题?

谁能解释一下为什么?
...全文
84 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
Demon1221 2003-08-23
  • 打赏
  • 举报
回复
要是我需要比较 什么办法好呢?
vitalgg 2003-08-23
  • 打赏
  • 举报
回复
在计算机内
2.1-1有可能等于1.09999999999999999999999999999999999999999999999999999999999999999
vitalgg 2003-08-23
  • 打赏
  • 举报
回复
不要对浮点数进行全等比较.
Demon1221 2003-08-23
  • 打赏
  • 举报
回复
换成
<?
if((float)(2.1-1)==(float)1.1) echo "1"."<br>";
if((float)(2.2-1)==(float)1.2) echo "2"."<br>";
if((float)(2.3-1)==(float)1.3) echo "3"."<br>";
if((float)(2.4-1)==(float)1.4) echo "4"."<br>";
if((float)(2.5-1)==(float)1.5) echo "5"."<br>";
if((float)(2.6-1)==(float)1.6) echo "6"."<br>";
if((float)(2.7-1)==(float)1.7) echo "7"."<br>";
if((float)(2.8-1)==(float)1.8) echo "8"."<br>";
if((float)(2.9-1)==(float)1.9) echo "9"."<br>";
?>
结果还是一样的
Demon1221 2003-08-23
  • 打赏
  • 举报
回复
3X
vitalgg 2003-08-23
  • 打赏
  • 举报
回复
if((int)round((2.3-1)*10)==(int)round(1.3*10)) echo "3"."|";

echo (int)(1.3*10)."|";
echo (int)((2.3-1)*10)."<br>\n";
php define('IN_SITE', true); require(dirname(__FILE__) . '/includes/init.php'); if(trim($_GET['ac']) == 'del') { deletetable('bug', "id='$_GET[bug_id]'"); goto($_SESSION['php_self']); } $_SESSION['php_self'] = geturl(); //echo $_SESSION['php_self']; $pro_id = empty($_GET['pro_id'])?'':intval($_GET['pro_id']); $bug_id = empty($_GET['bug_id'])?'':intval($_GET['bug_id']); $types = set_supetype($_SESSION['supe_type']); $sql = "SELECT * FROM ".tname('project')." WHERE `father` = '$pro_id'"; $pro_list = $db->getAll($sql); $sql = "SELECT pro_name, father, pro_id FROM ".tname('project')." WHERE `pro_id` = '$pro_id'"; $pro_info = $db->getRow($sql); if(!($_SESSION['supe_username'] and (($_SESSION['supe_project']!=$pro_info['pro_id'] ? $_SESSION['supe_project']==$pro_info['father'] : 1) or $_SESSION['supe_type']==-1))) { goto("login.php?pro_id=$pro_id"); } $sql = "SELECT pro_name FROM ".tname('project')." WHERE `pro_id` = '$pro_id'"; $pro_name = $db->getOne($sql); if($bug_id) { $sql = "select * from ".tname('bug')." where id='$bug_id'"; $bug = $db->getRow($sql); } if($_POST['submit']) { if($_POST['bug_id']) { if($_POST['pro_id']) { $pro_id = $_POST['pro_id']; } $sqlarr = array( 'pro_id' => $pro_id, 'title' => $_POST['title'], 'quick' => $_POST['quick'], 'bug' => $_POST['bug'] ); updatetable('bug', $sqlarr, "id='$_POST[bug_id]'"); } else { if($_POST['pro_id']) { $pro_id = $_POST['pro_id']; } $sqlarr = array( 'pro_id' => $pro_id, 'name' => $_SESSION['supe_username'], 'title' => $_POST['title'], 'quick' => $_POST['quick'], 'bug' => $_POST['bug'], 'dateline' => NOW ); inserttable('bug', $sqlarr); } goto("bug_list.php?pro_id=$pro_id"); } ?> <?=$_CFG['site_name']?> <script type="text/javascript" charset="utf-8" src="includes/editer/kindeditor.js"> KE.show({ id : 'bug', cssPath : './css/editer.css', items : [ 'undo', 'redo', 'fontname', 'fontsize', 'textcolor', 'bgcolor', 'bold', 'italic', 'underline', 'removeformat', 'justifyleft', 'justifycenter', 'justifyright', 'insertorderedlist', 'insertunorderedlist', 'image', 'source'] }); function checkuser(frm) { with(frm) { if (title.value.length < 1) { alert('标题不能为空'); title.focus(); return false; } } }
php if($pro_list) {?> php }?>
发布人: php if($bug_id) {echo $bug['name'];} else { echo $_SESSION['supe_username'];}?>
项目选择:
标题:
迫切度:
问题:

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧