一個整數值比較我只是想比較保存在C雙可變雙號,然後將其與值1 比較例如:X時雙變量在C
double x;
x = 1;
if(x == 1)
call ....
但即使具有值1,此條件評估爲false,因爲x保持值0.99999而不是1.
我該如何解決這個問題!
一個整數值比較我只是想比較保存在C雙可變雙號,然後將其與值1 比較例如:X時雙變量在C
double x;
x = 1;
if(x == 1)
call ....
但即使具有值1,此條件評估爲false,因爲x保持值0.99999而不是1.
我該如何解決這個問題!
這是一個浮動,所以你需要採取的精度考慮: 如果(X < 1.000001 & & X> 0.99999)
但是當我們有兩個值時,發生了什麼,我的意思是1,例如1.00000001,這兩個數字是不完全一樣的! – Hadi
@哈迪,是的,但是你必須堅持這一點,因爲無論如何浮點數並不是精確地在計算機中表示的。 – unkulunkulu
'fabs(x - 1)<0.000001'是這個更常見的成語 – unkulunkulu
演員來詮釋,也許? – Tudor
當然,所有的時間最喜歡http://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html – fvu
編號如果'x'的值爲1,'x == 1'將返回true 。如果'x'接近1,但不等於1,則它將評估爲假。 –