ANSI C中人们如何处理浮点不准确?在这种情况下,预期结果为4.305,但ANSI C返回0.000001?ANSI C浮点计算不准确
#include<stdio.h>
main()
{
float _lcl1=66.3;
float _ucl1=76;
float lbl1 = 0;
float ubl1 = 0;
lbl1 = (_lcl1 - 2.5 * (_ucl1 - _lcl1));
printf ("%e\n",lbl1);
}
4.205001e+01
想法,我有是,这必须是一个常见的问题,所以有一个标准库来处理这个人或这些转换为整数,做计算,然后将其转换回?有人能提供一些关于成功的“实践”策略的见解吗?
http://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html – Mysticial 2012-02-27 17:19:49
我想知道我们会在这里看到多少次浮点问题 – Coren 2012-02-27 18:00:23
人们通过使用十进制算术来处理这个比二进制浮点。这不是内置于C,所以你需要一个库。简而言之,二进制浮点并不是为了满足你的期望而设计的。 – 2012-02-27 22:16:35