2017-03-29 6 views
-1

は、計算に最も効果的な方法です.2倍は別の倍と同じですが、1倍以上では1倍以上です。C++の有効計算

編集: 例18> 18,17および19 - true; 5,5> 5,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

これをfabs(dNumberとdMiddle)にします。それ以外ではうまくいきません:) – AlexG

+0

@AlexG 'abs()'は 'double'のためにオーバーロードされています。 – HolyBlackCat

+1

''は ''に変更する必要があります。これは最初のものが削除されているためです。また、 'std ::'を 'abs'に追加する必要があります。 – HolyBlackCat