【MQL4定数】最大値・最小値の定数​

【辞書】MQLリファレンス

最大値・最小値の定数​

最大値・最小値の定数​は、データ型の最大桁数などを定数にしたものです。

プログラムを作成したときに、オーバーフローなどの不具合が発生したときには、データ型の最大値を超えている可能性があります。

その場合は、これらの定数で上限値を決めると良いでしょう。

 

最大値・最小値の定数​

定数数値説明
CHAR_MIN-128char型の最小値
CHAR_MAX127char型の最大値
UCHAR_MAX255uchar型の最大値
SHORT_MIN-32768short型の最小値
SHORT_MAX32767short型の最大値
USHORT_MAX65535ushort型の最小値
INT_MIN-2147483648int型の最小値
INT_MAX2147483647int型の最大値
UINT_MAX4294967295uint型の最大値
LONG_MIN-9.22337e+18long型の最小値
LONG_MAX9.22337e+18long型の最大値
ULONG_MAX1.84467e+19ulong型の最大値
DBL_MIN0.00E-01double型の最小値(正数)
DBL_MAX1.7976931348623158e+308double型の最大値
DBL_EPSILON2.22E-16以下条件時のdouble型の最小値
1.0+DBL_EPSILON != 1.0
DBL_DIG15double型の精度(桁数)
DBL_MANT_DIG53double型の仮数部ビット数
DBL_MAX_10_EXP308double型の指数部最大数(10進数)
DBL_MAX_EXP1024double型の指数部最大数(バイナリ)
DBL_MIN_10_EXP-307double型の指数部最小数(10進数)
DBL_MIN_EXP-1021double型の指数部最小数(バイナリ)
FLT_MIN1.18E-38float型の最小値(正数)
FLT_MAX3.40E+38float型の最大値
FLT_EPSILON1.192092896e-07以下条件時のfloat型の最小値
1.0+FLT_EPSILON != 1.0
FLT_DIG6float型の精度(桁数)
FLT_MANT_DIG24float型の仮数部ビット数
FLT_MAX_10_EXP38float型の指数部最大数(10進数)
FLT_MAX_EXP128float型の指数部最大数(バイナリ)
FLT_MIN_10_EXP-37float型の指数部最小数(10進数)
FLT_MIN_EXP-125float型の指数部最小数(バイナリ)

 

最大値・最小値の定数​の使い方

オーバーフローなどの不具合を回避するために使用することが多いでしょう。

大抵のロジックでは、オーバーフローは起こりませんが、ときどき発生するので、上限値を決めておくと良いでしょう。

例えば、以下のように使用します。

void OnInit() {
    for(int i = 0; i < INT_MAX; i++){
        Print(i);
    }
}