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

问一个浮点型数据有关问题啊

2012-07-29 
问一个浮点型数据问题啊!!!有这样一堆代码:float f1 5555.12ffloat f2 5555.23fprintf(%f,f1+f2)

问一个浮点型数据问题啊!!!
有这样一堆代码:
 float f1 = 5555.12f;
 float f2 = 5555.23f;
 printf("%f",f1+f2)
我期望的结果是:11110.350000
但是实际输出却是11110.350098
真搞不懂最后面的98哪里搞出来的。。。。。很无语啊

[解决办法]
float f1 = 5555.12f;
 float f2 = 5555.23f;
 printf("%7.2f\n",f1+f2);

用10进制小数不能精确表示某些三进制小数0.1(3)=0.33333333333……(10)
同理,用二进制小数也不能精确表示某些10进制小数。


[解决办法]

C/C++ code
int main(){    float f1 = 5555.12f; // 最接近的是5555.120117f    float f2 = 5555.23f; // 最接近的是5555.229980f    printf("%16f\n%16f\n",f1,f2);    printf("%16f\n",f1+f2);    return 0;} 

热点排行