2015-11-20 65 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();是以双精度浮点数表示的最低正数,而不是最负数。