函数将数据类型经过处理加工后进行的转换输出,属于弱性转换
根据
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);
}