CAPL脚本中常用到的数据类型转换——数字类型(int/double)和字符串类型(char array)
CAPL 脚本 自带API 数字 和 字符串 类型的相互转换汇总
·
数字和字符串相互转换
数字 转 字符串
长整形的字符串转为整形(atol)
测试代码:
On key 'd'
{
{
//长整形的字符串转为整形
long z1;
long z2;
z1 = atol("200");
Write("z1:%d", z1);
z2 = atol("0xFF");
Write("z2:%d", z2);
}
结果输出:
z1:200
z2:255
浮点数的字符串转为整形(atodbl)
测试代码:
On key 'd'
{
{ //浮点数的字符串转为整形
double d1;
double d2;
double d3;
d1= atodbl(" -3.7"); // -3.7
Write("d1:%f", d1);
d2= atodbl("0x1F"); // 31.0
Write("d2:%f", d2);
d3= atodbl("1.3E2"); // 130.0
Write("d3:%f", d3);
}
}
结果输出:
d1:-3.700000
d2:31.000000
d3:130.000000
64字节的字符串转为整形(atoi64)
On key 'd'
{
//64字节的字符串转为整形
int64 out; //int64 is 8 bytes
out = _atoi64("9223372036854775807"); // 9223372036854775807 is max value of int64
Write("_out :%I64d",out); // must print by %I64d formate
}
结果输出:
_out :9223372036854775807
复合整型字符串转为整形(strtod)
On key 'd'
{
{
//复合整型字符串转为整形 ,可以由索引位置选择要转换的数字
char s[20] = "-1.23 2.4E3";
double number1, number2;
int res;
res = strtod(s, number1);
write("number1: %g, res: %d", number1, res); // output: number1: -1.23, res: 5
res = strtod(s, res, number2);
write("number2: %g, res: %d", number2, res); // output: number2: 2400, res: 11
}
}
结果输出:
_out:9223372036854775807
字符串 转 数字
整型转字符串(ltoa)
On key 'd'
{ // 整型转为字符串输出,可以指定是二进制,十进制,还是十六进制转换
long z = 255;
char s1[9];
char s2[9];
ltoa(z,s1,2);
ltoa(z,s2,10);
write("z: %d s1= %s",z, s1);
write("z: %d s2= %s",z, s2);
}
输出结果:
z: 255 s1= 11111111 z: 255 s2= 255
整型转字符串(_gcvt)
On key 'd'
{
// 数字类型(包括浮点型和整形)转为字符串输出,可指定多少位显示。
char s[15];
float val1 = 3.1415926535;
float val2 = 271828;
_gcvt(val1, 10, s);
Write("val1: %f: s: %s", val1, s);
_gcvt(val2, 6, s);
Write("val2: %f: s: %s", val2, s);
}
输出结果:
val1: 3.141593: s: 3.141592654
val2: 271828.000000: s: 271828
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
已为社区贡献3条内容
所有评论(0)