c++ double类型的误差
来源:互联网 发布:工商银行网络银行 编辑:程序博客网 时间:2024/05/01 03:05
将字符串转化为double类型存在误差,例如:
字符串为1.89转化为double类型为:1.8899999999999.
这是正常的。
在c语言中头文件float.h中有如下定义:
#define DBL_EPSILON 2.2204460492503131e-016 /*smallest such that 1.0+DBL_EPSILON != 1.0 */
也就是说,只要使用double类型,如果两个double类型的数的差小于DBL_EPSILON,这两个数就是相等的。这是使用double类型的前提。
可以测试一下:
double f = 1.89 – atof(“1.89”);
f 为零。因为1.89 – atof(“1.89”)的差值小于DBL_EPSILON,它们就是相等的。
结论:这是正常的,所谓的精度误差是使用double类型必须接受的。
0 0
- c++ double类型的误差
- Decimal与double类型误差
- double类型相减结果误差的解决办法
- c语言中double转int的舍入误差
- double误差引起的缺陷
- double类型的精度问题【计算时有误差】。 (0.1 * 0.1 , 1.0 - 0.9)
- double类型相加(減、乘、除)结果会有些误差
- Double运算误差
- C#double类型变量比较
- Float和Double表示0.1的误差问题
- POJ:2109-Power of Cryptography(关于double的误差)
- double类型的讨论
- double类型的运算
- double类型的计算
- c语言中double类型数据的输入和输出
- c语言的double类型printf %lf 显示0.00000问题
- c/c++中float和double类型的存储
- c语言string类型转为double类型
- 【转】DataGridView 的重绘
- DOM解析XML(二)
- try catch多个catch捕获问题
- hdu2065--红色病毒
- Unlities之numeric_limits
- c++ double类型的误差
- [iOS Crash文件分析]-如何使用symbolicatecrash工具
- 烤鸭的gerrit使用总结
- 单元测试之覆盖率浅谈
- 怎么查询局域网内全部电脑IP和mac地址等信息?
- 人脸识别之LBPH
- CCS3.1调试总结
- 动态规划学习系列——数位DP(练手一)
- 容器介绍之Vector