top of page

%DEC

文字フィールドの数値を数値フィールドに変換。

3桁毎の桁区切りがある場合。

H DATEDIT(*YMD/)  DATFMT(*ISO)
D  WKNUM          S              8  0
D  WKNUMCHAR      S              8A
D  WKNUM2         S              8  1
D  WKNUMCHAR2     S              8A
C*
 /FREE

       //整数のみ:桁区切り有り
       EVAL  WKNUMCHAR = '1,111';                                      //文字「1,111   」
       EVAL  WKNUM = %DEC(WKNUMCHAR: 8: 0);                            //数値「00000001」

       EVAL  WKNUMCHAR2 = '1,111';                                     //文字「1,111   」
       EVAL  WKNUM2 = %DEC(WKNUMCHAR2: 8: 1);                          //数値「0000001.1」

       //小数点有り:桁区切り有り
    // EVAL  WKNUMCHAR = '1,111.1';                                    //文字「1,111.1 」
    // EVAL  WKNUM = %DEC(WKNUMCHAR: 8: 0);                            //エラー

    // EVAL  WKNUMCHAR2 = '1,111.1';                                   //文字「1,111.1 」
    // EVAL  WKNUM2 = %DEC(WKNUMCHAR2: 8: 1);                          //エラー

       EVAL  WKNUMCHAR2 = '1,111.1';                                   //文字「1,111.1 」
       EVAL  WKNUM2 = %DEC(%XLATE(',': ' ': WKNUMCHAR2): 8: 1);        //数値「0001111.1」

       EVAL  *INLR = *ON;

 /END-FREE

 

© 2015 by Name of Site. Proudly created with Wix.com

bottom of page