首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

float、int 类型转换解决方法

2012-10-09 
float、int 类型转换int x0x7FFFFFFF;请详细描述(float)x的过程(精度丢失)。注意float使用32位IEEE格式。使

float、int 类型转换
int x=0x7FFFFFFF;
请详细描述(float)x的过程(精度丢失)。
注意float使用32位IEEE格式。
使用IEEE格式,int最大能表示的数是多少,转换时才能不丢失精度?

[解决办法]
不好意思,忘记float默认第一位是1了,所以应该是2的24次方,即最大为16777215。
当大于16777215时如果数据后X位(X为移位的位数)不全是0,则出现精度丢失。

C/C++ code
    int a = 16777215;    float b = a;    int c = b;    cout<<c<<endl;    a = 16777217;    b = a;    c = b;    cout<<c<<endl; 

热点排行