外汇EA编程基础:MQL4数据类型转换详解
在MQL4编程中,数据类型转换是基础且重要的知识点。目前,MQL4语言仅支持隐式转换,即系统会自动完成部分数据类型之间的转换操作。
具体来说,int(包括bool、color、datetime)类型可以自动转换为double或string类型。
double类型可以转换为string类型。除了上述两种转换路径外,其他数据类型之间无法自动转换。例如:
int i = 1 / 2; //这里不进行数据类型转换,注意结果为0,而非0.5,因为分子和分母均为整数,系统不执行转换。
int i = 1 / 2.0; //表达式已转换为double类型,计算结果为0.5,但由于变量i被定义为int型,因此取整后结果为0,最终仍是整数0。
double d = 1.0 / 1.0; //这里没有发生任何转换,结果即为0.5。
double d = 1 / 2.0; //由于分母是double类型,分子会被自动转换为double类型,即1.0,因此表达式结果为0.5。
double d = 1 / 2; //因为分子和分母都是整数,计算结果是整数0,然后目标变量d为double类型,所以最终结果由整型0转换为double型0.0
string s = NULL; //结果为"0",注意NULL的值就是0
string s = "abc" + 123; //结果为"abc123",其中123原本为整数,被自动转换为字符串类型。
需要特别留意的是,string类型不能隐式转换为int或double类型,因此以下表达式都是错误的。
int i = "abc";
string s = 1.0 / 8; //由于分子和分母中有一个为double,则另一个也会被转换为double类型,EBC金融集团表达式结果为0.12500000,由于目标类型为字符串,所以最终结果为string型,值为"0.12500000",注意数值前后带有双引号。
如果希望将字符串"123"转换成整数123,则需要使用类型转换函数,这部分内容将在后续课程中详细介绍。
