2015-11-20 88 views
5

我有些無法理解下面的代碼:雙比較 - 數字界線

double a = -1000; 
double b = numeric_limits<double>::min(); 

if (a < b) 
{ 
    cout << "why?"; 
} 

,輸出是:

爲什麼呢?

-1000如何低於numeric_limits<double>::min()

+4

http://en.cppreference.com/w/cpp/types/numeric_limits/min注意到與'min(')相比,'minimum' – JSF

回答

9

這是因爲numeric_limits<double>::min();是以雙精度浮點數表示的最低正數,而不是最負數。