欢迎光临
我们一直在努力

2.12 函数转换类型

函数将数据类型经过处理加工后进行的转换输出,属于弱性转换

根据To后面的数据类型确定返回值类型

函数说明
CharToString(char_value)将字符转化成字符串输出,比如: char a = 'a', 转化后字符串后 "a"
doubleToString(double_value, digits)将浮点型转换成字符串,digits控制字符串的长度,比如: 3.1415926,digits = 2,转换后: "3.14"
EnumToString(any_emum_value)根据枚举类型的值转换成常量别名的字符串,enum Gender {Male, Female}, 比如Gender g = 0 or Male, 转换成就是 "Male"
NormalizeDouble(double_value,digits)将数据类型,根据小数位位数进行重置精度值,数据类型不变, 比如:2.7182818,digits = 4, 转换后: 2.7182
StringToDouble(string_value)将字符串转换成浮点型,比如: string str = "3.14", 转换后: (double)3.14
StringToInteger(string_value)将字符串转换成整型, 比如: string str = "10086", 转换后: (int)10086
StringToTime(string_value)将字符串转化成日期时间型,比如 string str = 60; 转换后就是: (datetime)D'1970.01.01 00:01:00'
TimeToString(datetime_value,mode)将日期以字符串形式格式化,比如: D'2023.01.01 08:30:30',如果mode= TIME_DATE,结果就是: "2023.01.01 08:30:30",如果mode = TIME_SECONDS,结果就是: "08:30:30"
IntegerToString(int_value,str_len,filler)int_value:整数数据,str_len:如果数据不足位数,就用filler在字符串左侧填充指定的字符,比如 id = 1, srt_len = 4, filler = '0',那么结果就是: "0001"
ShortToString(ushort_value)将字节码转换成字符串,比如: 0x00ff,转换后0b_0000_0000_1111_1111
ColorToARGB(clr_value, alpha)将颜色类型转换成透明特效颜色值,比如C'255,0,0', alpha = 0x55,那么透明效果就是: 55 / 255 = 21.6%
ColorToString(clr_value)颜色类型转换成字符串比如: "C'255,0,0'",转换后颜色 "clrRed"
StringToColor(string_value,color_name)将RGB字符串转换成颜色类型,比如 "0,255,0",转换后是 clrLime
StringFormat(format,valueN...)格式化字符串, 比如: "点赞数: +%d,点完赞的老板都发大财.",%d = 66,输出结果: 点赞数: +66,点完赞的老板都发大财.

代码实现

#property copyright "Copyright 2022, Author:阿龙."
#property link      "https://www.guapit.com"
#property description "MT5智能交易编程课程"
#property description "QQ: 8199231"
#property version   "1.00"

void OnStart()
  {
    // 1. char 转 string
    string str1 = CharToString('A');
    printf("str1的值: %s",str1);
    
    // 2.1 double 转 string
    string str2 = DoubleToString(7.0/3.0,2);
    printf("str2的值: %s",str2);
    
    // 2.2 string 转 double
    double str3 = StringToDouble(str2);
    printf("str3的值: %s",str2);
    
    // 2.3 重置浮点型精度
    double e = NormalizeDouble(2.7182818, 4);
    printf("e的值: %.4f",e);
    
    // 3.1 int -> string
    string str4 = IntegerToString(1,4,'0');
    printf("str4的值: %s",str4);
    // 3.2 转换常量值
    string str5 = IntegerToString(ORDER_TYPE_SELL);
    printf("str5的值: %s",str5);
    
    // 4.1 Enum -> string
    enum Gender {Male,Female};
    Gender g = Male;
    printf("g的值: %s",EnumToString(g));
    printf("sell的值: %s",EnumToString(ORDER_TYPE_SELL));
    
    // 5.1 Time -> string
    string str6 = TimeToString(D'2023.01.01 08:30:58',TIME_DATE);
    printf("str6的值: %s",str6);
    string str7 = TimeToString(D'2023.01.01 08:30:58',TIME_MINUTES);
    printf("str7的值: %s",str7);
    string str8 = TimeToString(D'2023.01.01 08:30:58',TIME_SECONDS);
    printf("str8的值: %s",str8);
    
    // 5.2 string -> Time
    datetime dt1 = StringToTime("2023.01.10 08:30:55");
    printf("dt1的值: %s",(string)dt1);
    
    datetime dt2 = StringToTime("08:30:55");
    printf("dt1的值: %s",(string)dt2);
    
    // 6.1 颜色类型转换成带有透明效果的值
    uint alpha = ColorToARGB(C'255,0,0',50); // 50 / 255 = 19.6% 透明度的红色
    
    // 6.2 color -> string
    string str9 = ColorToString(C'0,255,0',true);
    printf("str9的值: %s",str9);
    
    // 6.3 string -> string
    color clr = StringToColor("255,0,0");
    printf("str9的值: %s",(string)clr);
    
    // 7. 格式化字符串
    string str10 = StringFormat("点赞数: +%d,点赞了的老板都发大财!", 66);
    Print(str10);
  }

 收藏 (0) 打赏

您可以选择一种方式赞助本站

支付宝扫一扫赞助

微信钱包扫描赞助

未经允许不得转载:瓜皮猫量化编程 » 2.12 函数转换类型
分享到: 生成海报

评论 抢沙发

  • QQ号
  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

瓜皮猫量化交易编程

QQ群: 492653640微信: guapitcom
切换注册

登录

忘记密码 ?

切换登录

注册

我们将发送一封验证邮件至你的邮箱, 请正确填写以完成账号注册和激活