喜悦国际村 
» 游客:  注册 | 登录 | 搜索 | 统计 | 帮助

RSS 订阅当前论坛  

喜悦证交所已经关闭

上一主题 下一主题
     
标题: [问题] 问问浮点型在转换为整型的问题  
 
芽雨
高级会员
Rank: 4
老老会员


UID 27830
精华 0
积分 831
帖子 947
金钱 831 喜悦币
威望 0
人脉 0
阅读权限 50
注册 2004-4-15
来自 永州-->太原-->北京
状态 离线
[广告]: q m
问问浮点型在转换为整型的问题

例子从手册拓展出来的,在语言参考的整型章节中

运算结果怎么是这样呢?

php是5.20版本的

手册的提示是“决不要将未知的分数强制转换为 integer,这样有时会导致意外的结果。 ”

<?php
echo (int) ( (0.1+0.7) * 10 ); // 显示 7!
echo "<br />";
echo (int) ( (
0.1+0.7) * 100 ); // 显示 80!
echo "<br />";
echo (int) ( (
0.1+0.7) * 1000 ); // 显示 799!
echo "<br />";
echo (int) ( (
0.1+0.7) * 10000 ); // 显示 7999!
echo "<br />";
echo (int) ( (
0.1+0.7) * 100000 ); // 显示 80000!
echo "<br />";
echo (int) ( (
0.1+0.7) * 1000000); // 显示 799999!
echo "<br />";
echo (int) ( (
0.1+0.7) * 10000000); // 显示 7999999!
echo "<br />";
echo (int) ( (
0.1+0.7) * 100000000); // 显示 80000000!
echo "<br />";
echo (int) ( (
0.1+0.7) * 1000000000); // 显示 799999999 !
?>




My WebSite : 芽雨快跑:http://www.yayu.org
2007-9-12 04:00 PM#1
查看资料  访问主页  Blog  发短消息  QQ  顶部
 
wzhu (wzhu)
版主
Rank: 7Rank: 7Rank: 7
C[A-Z]O


UID 68040
精华 0
积分 74222
帖子 1611
金钱 74164 喜悦币
威望 0
人脉 58
阅读权限 100
注册 2006-1-14
来自 湖北荆州>陕西西安>辽宁 ...
状态 离线
[推荐阅读] 广州招聘PHP程序员
因为0.1 不等于0.1.一般都是什么0.099998或者0.1000001这种类型的



<?wzhu
wzhu.print("http://www.cncmm.com");
?>
2007-9-12 04:04 PM#2
查看资料  访问主页  Blog  发短消息  QQ  顶部
 
sxpo
中级会员
Rank: 3Rank: 3


UID 93812
精华 0
积分 208
帖子 309
金钱 208 喜悦币
威望 0
人脉 0
阅读权限 30
注册 2007-6-11
状态 离线
[推荐阅读] 上海华库网络科技 聘 【php工程师】浦东新区
你是说浮点型的0.1不等于整形的十分之一么



拥抱真是个奇怪的东西,明明靠的那么近,却......
2007-9-12 04:06 PM#3
查看资料  发短消息  QQ  顶部
 
wzhu (wzhu)
版主
Rank: 7Rank: 7Rank: 7
C[A-Z]O


UID 68040
精华 0
积分 74222
帖子 1611
金钱 74164 喜悦币
威望 0
人脉 58
阅读权限 100
注册 2006-1-14
来自 湖北荆州>陕西西安>辽宁 ...
状态 离线
[推荐阅读] 求教


QUOTE:
原帖由 sxpo 于 2007年9月12日 16:06 发表
你是说浮点型的0.1不等于整形的十分之一么
看看否点数怎么和零值判断就知道了




<?wzhu
wzhu.print("http://www.cncmm.com");
?>
2007-9-12 04:08 PM#4
查看资料  访问主页  Blog  发短消息  QQ  顶部
 
jonyare
中级会员
Rank: 3Rank: 3


UID 92705
精华 0
积分 407
帖子 366
金钱 407 喜悦币
威望 0
人脉 0
阅读权限 30
注册 2007-5-8
来自 清华王牌计算机系
状态 离线
[推荐阅读] 表连接查询
组成原理讲关于浮点数啊什么的存储,看了都头疼



务以善小而为之,务以恶小而不为村
2007-9-12 08:10 PM#5
查看资料  Blog  发短消息  顶部
 
芽雨
高级会员
Rank: 4
老老会员


UID 27830
精华 0
积分 831
帖子 947
金钱 831 喜悦币
威望 0
人脉 0
阅读权限 50
注册 2004-4-15
来自 永州-->太原-->北京
状态 离线
[推荐阅读] 是男人就不流泪


QUOTE:
原帖由 wzhu 于 2007-9-12 04:08 PM 发表



看看否点数怎么和零值判断就知道了
你是说:

<?php
if(0.1 == 1/10)
    echo 
"hah";

if(
0.1 == 0)
    echo 
"hah";
?>
没看出什么异常啊




My WebSite : 芽雨快跑:http://www.yayu.org
2007-9-13 12:15 PM#6
查看资料  访问主页  Blog  发短消息  QQ  顶部
 
wzhu (wzhu)
版主
Rank: 7Rank: 7Rank: 7
C[A-Z]O


UID 68040
精华 0
积分 74222
帖子 1611
金钱 74164 喜悦币
威望 0
人脉 58
阅读权限 100
注册 2006-1-14
来自 湖北荆州>陕西西安>辽宁 ...
状态 离线
[推荐阅读] 宁愿给日__本人干活,也别给狗汉奸干活
浮点数的小数部分,一般是没办法用有效位数(机器位)得二进制表示的,只可能是近似值。
bin(1001.1011)  = 1*2^3 + 0 *2^2 +0*2^1 + 1*2^0 + 1*2^-1 + 0*2^-2 + 1*2^-3 + 1*2^-4
                          =  8 + 0 + 0 + 1 +0.5 + 0 + 0.125  + 0.0625
                          = 9.6875

[ 本帖最后由 wzhu 于 2007-9-13 12:31 PM 编辑 ]




<?wzhu
wzhu.print("http://www.cncmm.com");
?>
2007-9-13 12:21 PM#7
查看资料  访问主页  Blog  发短消息  QQ  顶部
 
芽雨
高级会员
Rank: 4
老老会员


UID 27830
精华 0
积分 831
帖子 947
金钱 831 喜悦币
威望 0
人脉 0
阅读权限 50
注册 2004-4-15
来自 永州-->太原-->北京
状态 离线
[推荐阅读] 怎么能得到 mtid,
原来是这么回事

回到二进制的地盘了




My WebSite : 芽雨快跑:http://www.yayu.org
2007-9-13 04:04 PM#8
查看资料  访问主页  Blog  发短消息  QQ  顶部
 
kuco
高级会员
Rank: 4
一半会员


UID 66126
精华 0
积分 962
帖子 964
金钱 909 喜悦币
威望 0
人脉 53
阅读权限 50
注册 2005-8-23
来自 上海
状态 离线
[推荐阅读] 欢迎加入PHP开发者新手群 : 2153698
echo bcadd(0.1, 0.7, 2) * 1000000000; // 显示 800000000 !



阿里妈妈再掀疯狂采购风,急召天下站长,新加入站点3天内一定采购!
2007-9-13 09:51 PM#9
查看资料  Blog  发短消息  顶部
     


  可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题 | 开通个人空间  


 




Powered by Discuz! 6.1.0  © 2001-2010 Comsenz Inc.
Processed in 0.026861 second(s), 6 queries

(冀ICP备05009913号) 管理员:sadly 邮箱/MSN: sadly@phpx.com QQ:824008(长隐) 清除 Cookies - - Archiver - WAP