注册 登录
编程论坛 C++教室

大家快来看看,这个程序很诡异。

bc编程321 发布于 2011-11-06 22:26, 801 次点击

#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,为什么啊?
在下先谢过各位了!
7 回复
#2
lwei2011-11-06 23:43
浮点数在计算机内部可能是一1022.NXXXX这样的形式存在的,而你在从float到int的类型转换的时候并不会进行四舍五入,只会把整数部分保留小数部分舍弃。
#3
sandunban2011-11-07 12:38
学习中
#4
bc编程3212011-11-07 12:47
回复 2楼 lwei
有道理啊,谢谢您了。
#5
lzh11042011-11-08 08:34
从浮点型转换到整形会丢失东西 所以就那样了
#6
Noll_Nie2011-11-08 09:21
学习了
#7
跳跳鱼2011-11-08 20:34
问一下啊,这样的误差问题能改一下程序,使之避免吗?
#8
lucky5635912011-11-09 09:34
这也叫诡异?隐式类型转换没学过?
1