EA编程教程第三讲 数据类型转换
外汇小助手EA编程 2019-07-25 20:39:27 交流微信号:FX263cn EA教程 EA课程 EA学习
Fx263.com|全球中文外汇网
MQL语言目前仅支持隐式转换,MQL目前可以做一下数据类型自动转换。
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 = 1.0 / 8; //由于分子和分母中有一个为double,则分子和分母中非double都会转成double型,表达式的结果为0.12500000,由于目标类型为字符串,所有最终的结果为string型,值为"0.12500000",注意值的前后有个双引号。
string s = NULL; //结果为"0",注意NULL的值就是0
string s = "abc" + 123; //结果为"abc123",123原本为整形,被转换成string型。
注意string类型不能隐式转换成int和double,所以一下表达式都是错误的。
int i = "abc";
如果是字符串"123"要转换成整型123,需要使用函数进行转换,这个函数将在后续的课程中提到。
Fx263.com|全球中文外汇网
MQL语言目前仅支持隐式转换,MQL目前可以做一下数据类型自动转换。
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 = 1.0 / 8; //由于分子和分母中有一个为double,则分子和分母中非double都会转成double型,表达式的结果为0.12500000,由于目标类型为字符串,所有最终的结果为string型,值为"0.12500000",注意值的前后有个双引号。
string s = NULL; //结果为"0",注意NULL的值就是0
string s = "abc" + 123; //结果为"abc123",123原本为整形,被转换成string型。
注意string类型不能隐式转换成int和double,所以一下表达式都是错误的。
int i = "abc";
如果是字符串"123"要转换成整型123,需要使用函数进行转换,这个函数将在后续的课程中提到。
Fx263.com|全球中文外汇网
【版权声明】
本文仅代表作者观点,不代表本站立场。Fx263.com对文中陈述、观点判断保持中立,不对所包含内容的准确性、可靠性或完整性提供任何明示或暗示的保证,且不构成任何投资建议,请读者仅作参考,并自行承担全部风险与责任。Fx263.com作为信息内容发布平台,页面展示内容的目的在于传播更多信息,不代表Fx263.com立场;本站会员及自媒体人所发的稿件所载明的信息与本网无关,如文章涉及版权,请联系本站处理。
【风险提示】
请通过正规渠道参与外汇保证金交易。目前通过网络平台提供、参与外汇保证金交易均属非法。请提高意识,谨防损失!外汇、贵金属和差价合约(OTC场外交易)是杠杆产品,存在较高的风险,可能会导致亏损您的投资本金,请理性投资。