Не уверен, что это будет работать не на всех компиляторах, но я использую следующую конструкцию для удаления конечных пробелов и / или вычисления длины строк.Идея состоит в том, чтобы перевернуть строку, с которой вы работаете, а затем определить количество начальных пробелов.Вычтите это число из длины строки.Это также сохранит все встроенные пробелы, если они есть.
WORKING-STORAGE SECTION.
01 W-IX1 PIC 9(8) VALUE ZERO COMP-4.
01 W-TRAIL PIC 9(8) VALUE ZERO COMP-4.
01 W-LENGTH PIC 9(8) VALUE ZERO COMP-4.
01 W-INPUT-AMNT PIC 9(9)V9(5).
01 W-ROUNDED-AMNT PIC Z(9).
01 W-TEMP-AMNT PIC X(9).
01 W-OUTPUT-AMNT PIC X(9).
PROCEDURE DIVISION.
MOVE 123.92345 TO W-INPUT-AMNT.
MOVE 1 TO W-IX1.
COMPUTE W-ROUNDED-AMNT ROUNDED = W-INPUT-AMNT * 1.
MOVE W-ROUNDED-AMNT TO W-TEMP-AMNT.
INSPECT W-TEMP-AMNT TALLYING W-IX1 FOR LEADING SPACES.
MOVE W-TEMP-AMNT(W-IX1:) TO W-OUTPUT-AMNT.
MOVE ZERO TO W-TRAIL.
INSPECT FUNCTION REVERSE (W-OUTPUT-AMNT)
TALLYING W-TRAIL
FOR LEADING SPACE.
SUBTRACT W-TRAIL
FROM LENGTH OF W-OUTPUT-AMNT
GIVING W-LENGTH.
DISPLAY "RESULT:" W-OUTPUT-AMNT(1:W-LENGTH) ":".
MOVE SPACE TO W-OUTPUT-AMNT.
STOP RUN.