"79.85"、 "1000"、 "212.34"などの文字列を含むシーケンシャルファイルを読み込みます。英数字を変換して計算に使用するにはどうすればよいですか?
英数字を00000.00の形式で数値に変換したいですか?
これらの数値を合計して、フィールドに0000000.00の形式で移動する必要があります。
は、私が試した:私は予想外で得たもの01 WS_AMOUNT_TXT PIC X(8).
01 WS_AMOUNT PIC 9(5).9(2).
MOVE WS_AMOUNT_TXT(1:8) TO WS_AMOUNT(1:8).
は、文字列はちょうど同じようです。左揃えで、先頭ゼロ表示はありません。
どのようにして右揃えにすることができますか?
編集:私はNealBでの提案を試みたが、それは悲しげに失敗しました:
01 WS_AMOUNT_NUM PIC 9(5)V9(2).
01 WS_AMOUNT_DISPLAY PIC 9(5).9(2).
01 WS_AMOUNT_TXT PIC X(8).
DISPLAY WS_AMOUNT_TXT
COMPUTE WS_AMOUNT_NUM = FUNCTION NUMVAL (WS_AMOUNT_TXT)
MOVE WS_AMOUNT_NUM TO WS_AMOUNT_DISPLAY
79.85 < <これは私が表示WS_AMOUNT_TXT と呼ばれるし、それがクラッシュしたときに表示されたものです。
%のCOB-F-NUMVALARGINV、NUMVALまたはNUMVAL-C引数無効 %TRACE-F-TRACEBACK、シンボリックスタックダンプが 画像モジュールルーチン行のrel PCのABS PCを以下の 12月$ COBRTL 0 000000000001F2B8 000000007C2F72B8 12月$ COBRTL 0 0000000000014764 000000007C2EC764 12月$ COBRTL 0 0000000000014C44 000000007C2ECC44 DAILY_SPLIT_REFUND_ADJ DAILY_SPLIT_REFUND_ADJ DAILY_SPLIT_REFUND_ADJ 121 00000000000003C4 00000000000303C4 DAILY_SPLIT_REFUND_ADJ 0 00000000000313A0 00000000000313A0 0 FFFFFFFF80271EF4 FFFFFFFF80271EF4
に複製することに失敗しました数値。そのフィールドには、数字、小数点、スペース以外のいくつかの「迷惑メール」があります。変換しようとする前にWS_AMOUNT_TXTをクリーンアップしてください。 – NealB