c语言中浮点数的陷阱
2015-08-25 14:49
337 查看
错误代码:
#include <stdio.h>
int main(){
double i;
for(i = 0.0; i = 10.0; i += 0.1)
printf("%.1f\n",i);
return 0;
}
c语言中double类型数据计算是有误差的,也就是说你每次加0.1,可能永远得不到整10,有可能是0.900001
正确代码:
#include <stdio.h>
int main(){
double i;
for(i = 0.0; i -10 < 0.0; i += 0.1)
printf("%.1f\n",i);
return 0;
}
#include <stdio.h>
int main(){
double i;
for(i = 0.0; i = 10.0; i += 0.1)
printf("%.1f\n",i);
return 0;
}
c语言中double类型数据计算是有误差的,也就是说你每次加0.1,可能永远得不到整10,有可能是0.900001
正确代码:
#include <stdio.h>
int main(){
double i;
for(i = 0.0; i -10 < 0.0; i += 0.1)
printf("%.1f\n",i);
return 0;
}
相关文章推荐
- C++动态链接库的兼容性
- C++中编译预处理功能
- 【more effective c++读书笔记】【第1章】基础议题(2)
- 【more effective c++读书笔记】【第1章】基础议题(2)
- 虚函数的机制
- 把C++的类的方法直接作为线程的回调函数
- C++栈学习——赋值运算法的重载
- 阿里笔试--软开C/C++
- C++ MD5加密实现
- C++ 遍历文件夹
- 【C/C++和指针】printf 的那些事
- C++中组合和继承的初始化
- C语言学习中一些函数的记录
- Visual Studio 2010建模学习(十二) - C/C++代码的可视化
- 逐步理解KMP算法C++完整实现
- 浅谈C++三层架构
- C++常用术语及其英文翻译的含义和简单用途总结(八)
- C++计算 MD5值 (数字签名)
- C++成员函数做为线程函数
- C++函数模板及实现原理