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

整型与浮点型的转换解决办法

2012-03-26 
整型与浮点型的转换1.当整型值转换float型值时,也可能损失数度2.当float型值转换为整型值时,如浮点数过于

整型与浮点型的转换
1.当整型值转换float型值时,也可能损失数度
2.当float型值转换为整型值时,如浮点数过于庞大,无法容纳于整型中,那么其结果是未定义的
这两名话,如何理解啊.能具体举例一下吗

[解决办法]
1.当整型值转换float型值时,也可能损失数度
假设
float f = 100;
那么f在内存中可能是99.99999,处于
浮点数的存储结构,不能达到100%的精度,只是非常的逼近你的值
所以当整型值转换float型值时,也可能损失数度这句话是对的

[解决办法]
1.float和int都是4字节,float和int格式完全不同,float还有小数部分要占用空间,所以一个较大的int转成float就变了

2.float转成整型,由于float可以用科学技术法,这个大小就不好说了……
[解决办法]

探讨
2.当float型值转换为整型值时,如浮点数过于庞大,无法容纳于整型中,那么其结果是未定义的

这句话我决的有点问题,一个很大的float,赋值给一个整形时,
会造成整形的溢出,但是在特定的系统里面,还是可以推算出这个整形的数值的。。。。
等待高手解释这句话。。。

[解决办法]
C/C++ code
#include <iostream>#include <limits>using namespace std;int main(){    cout.precision(20);    int i=numeric_limits<int>::max();    cout<<i<<endl;    cout<<numeric_limits<float>::max()<<endl;//可以知道远大于int的最大值    cout<<"possible loss of data"<<endl;    float f=(int)i;    cout<<f<<endl;    } 

热点排行