The first question I must ask is: what is the main language? the string to be converted is fixed or variable length? whether before or after the string? the currency above, following the string and, contiguous or separated? there is a need to vary parametrically decimal point or currency?
Furthermore: I believe that you have the need to have a multi-function editing routine. He also never thought of using, for the calculation and / or alignment of floating point fields? in particular a similar function: The edited numeric string can contain the sign (first or last significant position) the decimal separator and one or more separators properly positioned Call is like: Workink-storage. 01 HDNUM-PKT. 88 HDNUM__STRIP_NUM VALUE 1. 88 HDNUM__STRIP VALUE 2. 88 HDNUM__TRIM VALUE 3. 88 HDNUM__STRIP_NUM_TRIM VALUE 4. 88 HDNUM__STRIP_TRIM VALUE 5. 88 HDNUM__STR_HFP VALUE 6. 88 HDNUM__VSTR_HFP VALUE 7. 88 HDNUM__BIN_HFP VALUE 8. 88 HDNUM__B32_HFP VALUE 8. 88 HDNUM__B64_HFP VALUE 9. 88 HDNUM__HFP_STR VALUE 10. 88 HDNUM__HFP_STRR VALUE 11. 88 HDNUM__HEX_H VALUE 12. 88 HDNUM__HEX_W VALUE 13. 88 HDNUM__HEX_D VALUE 14. 88 HDNUM__NUMERO VALUE 15. 88 HDNUM__OPTION-TRAILING VALUE 16. 88 HDNUM__OPTION-LEADING VALUE 17. 88 HDNUM__OPTION-BOTH VALUE 18. 88 HDNUM__OPTION-COMPRESS VALUE 19. 88 HDNUM__OPTION-ALL VALUE 20. 88 HDNUM__COMPRESS VALUE 21. 88 HDNUM__ALL VALUE 22. 88 HDNUM__NUMERO_FIX VALUE 23. 88 HDNUM__VSTR_HFP_CLOB VALUE 24. 88 HDNUM__HFPS_STR VALUE 25. 88 HDNUM__HFPS_STRR VALUE 26. 88 HDNUM__DECIMAL VALUE 27. 88 HDNUM__STR_HFP_CLOB VALUE 28. 88 HDNUM__LSPALL VALUE 29. 88 HDNUM__NUMERIC VALUE 30. 88 HDNUM__GRAFIC VALUE 31. 88 HDNUM__STRHFP_2 VALUE 32. 88 HDNUM__VSTRHFP_2 VALUE 33. 02 UNIEDIT-SUBFUN PIC S9(04) BINARY. 02 UNIEDIT-CODES. 04 UNIEDIT_FC PIC S9(04) BINARY. 04 UNIEDIT_FS PIC S9(04) BINARY. 04 UNIEDIT_EXTRA_FNCT PIC X(4). 88 HDNUM_VIRGOLA VALUE X'FFEF6B00'. 88 HDNUM_VIRGOLA_X VALUE X'FFEF6B6B'. 88 HDNUM_PUNTO VALUE X'FFEF4B00'. 88 HDNUM_PUNTO_X VALUE X'FFEF4B4B'. 88 HDNUM_ONLY_ABEND VALUE X'FFEF0000'. 04 UNIEDIT_EXTRA_1 REDEFINES UNIEDIT_EXTRA_FNCT. 06 FILLER PIC X(2). 88 HDNUM_ABEND VALUE X'FFFF'. 06 FILLER PIC X(2). 01 LS-CAMPO-GRAF PIC X(48). 01 XML-P2-LEN PIC S9(8) BINARY. 01 HFP-RESP. 02 HFP-STAT PIC S9(9) BINARY. 02 HFP-SEGNO PIC S9(9) BINARY. 02 HFP-DATI-HFP. 04 HDRESP-RISULTATO COMP-2. 04 HDRESP-INT-18 PIC S9(18) BINARY. 04 HDRESP-INTERO PIC S9(18) BINARY. 04 HDRESP-DECIMALE PIC S9(18) BINARY. 04 HDNUM-STRLGTH PIC S9(4) BINARY. 04 HDNUM-STR. 05 HDNUM-STRCHAR PIC X OCCURS 1 TO 48 DEPENDING ON HDNUM-STRLGTH. Procedure division. MOVE your-string to LS-CAMPO-GRAF TO LEN MOVE LENGTH OF LS-CAMPO-GRAF TO LEN SET HDNUM__GRAFIC TO TRUE CALL UNI_EDIT USING HDNUM-PKT LEN LS-CAMPO-GRAF HFP-RESP In particolare: In HDRESP-RISULTATO result in floating-point ecc…. Aldo Crosio tel: 051-4991812 /3488858416 fax: 051-6255762 CSE Consorzio Servizi Bancari Società consortile a responsabilità limitata Via Emilia n. 272 40068-San Lazzaro di Savena (BO) Ai sensi del D.Lgs. 196/2003 si precisa che le informazioni contenute nel presente messaggio, corredato dei relativi allegati, sono strettamente riservate ed a uso esclusivo dei destinatari. Qualora Le fosse pervenuto per errore, La invitiamo ad eliminarlo immediatamente, dandocene gentilmente comunicazione. Grazie. ------------ *** ------------ *** ------------ *** ------------