| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 801 人关注过本帖
标题:大家快来看看,这个程序很诡异。
只看楼主 加入收藏
bc编程321
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2011-9-18
结帖率:0
收藏
已结贴  问题点数:20 回复次数:7 
大家快来看看,这个程序很诡异。

#include<iostream>
using std::cin;
using std::cout;
using std::endl;

int main()
{
    float a=10.23;
    int b;
    a=a*100;
    b=a;
    cout<<b;
    return 0;
}
各位大侠
这个程序输出的b为1022,为什么啊?
在下先谢过各位了!
2011-11-06 22:26
lwei
Rank: 5Rank: 5
等 级:职业侠客
威 望:3
帖 子:197
专家分:369
注 册:2005-5-4
收藏
得分:3 
浮点数在计算机内部可能是一1022.NXXXX这样的形式存在的,而你在从float到int的类型转换的时候并不会进行四舍五入,只会把整数部分保留小数部分舍弃。

2011-11-06 23:43
sandunban
Rank: 1
等 级:新手上路
帖 子:6
专家分:3
注 册:2011-11-7
收藏
得分:3 
学习中
2011-11-07 12:38
bc编程321
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2011-9-18
收藏
得分:0 
回复 2楼 lwei
有道理啊,谢谢您了。
2011-11-07 12:47
lzh1104
Rank: 2
等 级:论坛游民
帖 子:13
专家分:23
注 册:2008-10-4
收藏
得分:3 
从浮点型转换到整形会丢失东西 所以就那样了
2011-11-08 08:34
Noll_Nie
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:71
专家分:139
注 册:2011-4-19
收藏
得分:3 
学习了
2011-11-08 09:21
跳跳鱼
Rank: 2
等 级:论坛游民
帖 子:74
专家分:60
注 册:2011-5-4
收藏
得分:3 
问一下啊,这样的误差问题能改一下程序,使之避免吗?
2011-11-08 20:34
lucky563591
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:4
帖 子:765
专家分:2103
注 册:2009-11-18
收藏
得分:3 
这也叫诡异?隐式类型转换没学过?
2011-11-09 09:34
快速回复:大家快来看看,这个程序很诡异。
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.014621 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved