2017-03-29 64 views
-1

這是計算最有效的方法double是否等於另一個double,是否小於等於1且大於1。C++有效計算

編輯: 實施例18> 18,17和19 - 真; 5,5> 4,5,4,5和6,5 - 是。

如果18位於17和19之間的範圍內 - 則返回true。否則返回false。

如果5,5等於5,5或它在4,5到6,5的範圍內 - 則返回true。否則返回false。 代碼開始:

bool inRange(double one, double two) 
{ 
    return (one== one); 
} 
+3

什麼是'isRange()'該怎麼辦?你的描述沒有說清楚。 – Sneftel

+0

你能否讓你的問題更清楚?很難理解它的方式。 –

+0

在比較浮點數時,只需使用一些容差因子(本例中爲'1.0')。 – ArchbishopOfBanterbury

回答

3
#include <cmath> 

bool inRange(double dNumber, double dMiddle) 
{ 
    return std::fabs(dNumber - dMiddle) <= 1; 
} 
+1

使它成爲工廠(dNumber和dMiddle)。除了似乎很好:) – AlexG

+0

@AlexG'abs()'超載爲'double',所以它完全沒問題。 – HolyBlackCat

+1

我會說''應該更改爲'',因爲第一個被刪除。另外,'std ::'應該被添加到'abs'。 – HolyBlackCat