CAPL指令碼中常用到的資料型別轉換——數字型別(int/double)和字串型別(char array)

一兮望月發表於2020-10-12

數字 轉 字串

長整形的字串轉為整形(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

相關文章