外汇EA编程数据类型转换详解教程

MQL语言目前仅支持隐式类型转换,系统可以自动完成部分数据类型的转换。

int(包括bool、color、datetime)可以转换为double或string。

double可以转换为string。除了上述两种转换外,不能进行其他数据类型的隐式转换,例如:

int i = 1 / 2; // 分子和分母均为整型,结果取整为0,不会自动转换为0.5。

int i = 1 / 2.0; // 分母为double,分子自动转为double,计算得0.5,但变量i为整型,取整后结果为0。

double d = 1.0 / 1.0; // 无转换,结果为0.5。

double d = 1 / 2.0; // 分母为double,分子转为double,结果0.5。

double d = 1 / 2; // 分子分母均为整型,先计算整型0,再转换为double型0.0。

string s = NULL; // NULL值为0,结果为"0"。

string s = "abc" + 123; // 整型123自动转为string,结果为"abc123"。

注意:string类型不能隐式转换为int或double,因此以下表达式是错误的:

int i = "abc"; // 错误,无法完成转换。

string s = 1.0 / 8; // 分子分母中有一个为double,则所有非double部分转为double,计算得0.12500000,目标类型为string,最终结果为"0.12500000"。

如果需要将字符串"123"转换为整型123,必须使用专门的函数,这部分内容将在后续课程中展开。学习过程中若想查阅更多资料,可前往DBG Markets官网获取相关教程。