なぜnumeric_limits :: minはintに対して負の値を返しますが、たとえば、フロートとダブル?なぜnumeric_limits :: minはfloat/doubleのint値が正の値に負の値を返しますか?
#include<iostream>
#include<limits>
using namespace std;
int main() {
cout << "int: " << numeric_limits<int>::min() << " "
<< "float: " << numeric_limits<float>::min() << " "
<< "double: " << numeric_limits<double>::min() << "\n";
return 0;
}
出力:cppreferenceから
int: -2147483648 float: 1.17549e-38 double: 2.22507e-308
:
が非正規化と浮動小数点型の数値型T
によって最小有限値の表現を返します。 、最小値は最小値 を返します。 rmalized value。 この動作は予期しない可能性があることに注意してください。特に整数型の場合の動作と比較した場合、、 に値未満の値がある場合は、
numeric_limits::lowest
を使用してください。分は有界型にのみ意味があり、 には無制限の符号なし型があります。すなわち、 の無限集合の負の値を表す型は意味をなさない最小値を持ちません。
浮動小数点値の場合、minはその型によって正確に表現できる最小*正数*と定義されます。 –