讨论c/c++计算小数的精度问题
来源:互联网 发布:mac ps2017怎么破解 编辑:程序博客网 时间:2024/05/22 17:17
求出所有100以下整数与一位小数相乘等于相加的浮点数
这个有Bug浮点数计算时精度会出现误差
除非使用非常精确的类型或限制浮点的位数
比如
#include <iostream>int main(){ using std::cout; using std::endl; unsigned int a = 0; double b; double temp; while (a <= 100) { b = 0; while (b < 100) { temp = 0; while (temp < 1) { if (a + b + temp == a * (b + temp)) cout << a << b + temp << endl; temp += 0.1; } a++; b++; } }}
会产生这个问题
cout.precision这个让我非常讨厌,一个伪限制精度
师傅:这个不是BUG,而是精度问题,没有100%准确的~ 用宽度来进行控制吧~
网友:既然限定一位小数既然限定一位小数就不用浮点了
网友:也可以用10倍的数值,表示1位小数。
比如
1 表示 0.1
11 表示 1.1
网友:x + y/10 = x*y/10
x*y - 10*x - y = 0
(x-1)(y-10) = 10
(x-1,y-10)={(1,10),(2,5),(5,2),(10,1)}
(x,y/10)={(2,2),(3,1.5),(6,1.2),(11,1.1)}
why need code
0 0
- 讨论c/c++计算小数的精度问题
- C语言精度计算——大数乘小数
- js中的小数计算精度问题,修正计算精度
- js,java小数计算精度问题
- C / C++中保留小数精度
- python与C, C++,C#一个计算精度的区别
- C/C++精度问题
- 关于小数负数丢失精度的问题
- matlab和c的小数问题
- c语言输出小数的格式问题
- 【讨论】为啥0.2+0.4 != 0.6(浮点数计算的精度问题)
- BigDecimal 小数精度问题
- 精度计算-大数乘小数
- double 计算精度的问题
- 关于精度计算的问题
- java中float/double浮点数的计算失去精度问题(即小数位数增加的问题)
- java中float/double浮点数的计算失去精度问题(即小数位数增加的问题)
- 关于C的讨论
- windows核心编程 第5章job lab示例程序 解决小技巧
- 坑爹的tp-link管理密码设置
- 在linux单机上手动创建Oracle 10g物理standby dataguard
- 一个函数重载问题
- 隐藏进程名
- 讨论c/c++计算小数的精度问题
- 命名对象继承1-验证Create*命名对象安全属性的传递
- Arcgis 控制地图缩放比例
- 命名对象继承2-验证Open*命名对象安全属性的传递
- c++中不需要显示指出struct
- mknod 详解
- 收藏5篇文章
- 收藏的关于开发的一些东西
- 反驳--(知乎)大龄门外汉如何进入软件开发行业?的回复