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