59 lines
2.1 KiB
MQL5
59 lines
2.1 KiB
MQL5
//+------------------------------------------------------------------+
|
|
//| TypeConversion.mq5 |
|
|
//| Copyright 2021, MetaQuotes Ltd. |
|
|
//| https://www.mql5.com |
|
|
//+------------------------------------------------------------------+
|
|
|
|
#property copyright "Copyright 2021, MetaQuotes Ltd."
|
|
#property link "https://www.mql5.com"
|
|
#property version "1.00"
|
|
|
|
#define PRT(A) Print(#A, "=", (A))
|
|
|
|
//+------------------------------------------------------------------+
|
|
//| Script program start function |
|
|
//+------------------------------------------------------------------+
|
|
void OnStart()
|
|
{
|
|
short s = 10;
|
|
long n = 10;
|
|
int p = s * n + 1.0;// possible loss of data due to type conversion
|
|
|
|
double d = 1.0;
|
|
int x = 1.0 / 10; // truncation of constant value
|
|
int y = d / 10; // possible loss of data due to type conversion
|
|
d = LONG_MAX; // truncation of constant value
|
|
|
|
long m1 = 1000000000;
|
|
long m2 = m1 * m1; // ok: m2 = 1000000000000000000
|
|
long m3 = 1000000000 * 1000000000; // integral constant overflow
|
|
// m3 = -1486618624
|
|
PRT(m2);
|
|
PRT(m3);
|
|
|
|
d = m1 * m1; // possible loss of data due to type conversion
|
|
|
|
char c = 3000; // truncation of constant value
|
|
PRT(c); // -72
|
|
uchar uc = 3000; // truncation of constant value
|
|
PRT(uc); // 184
|
|
|
|
char c55 = 55;
|
|
char sm = c55 * c55; // ok!
|
|
PRT(sm); // 3025 -> -47
|
|
uchar um = c55 * c55; // ok!
|
|
PRT(um); // 3025 -> 209
|
|
|
|
uint u = 11;
|
|
int i = -49;
|
|
PRT(i + i); // -98
|
|
PRT(u + i); // 4294967258
|
|
|
|
double w = 100.0, v = 7.0;
|
|
float f = (float)(w / v);
|
|
p = (int)(w / v);
|
|
PRT(w / v); // 14.28571428571429
|
|
PRT((int)(w / v)); // 14
|
|
Print("Result:" + (string)(float)(w / v)); // Result:14.28571
|
|
}
|
|
//+------------------------------------------------------------------+
|