Присвоение к CHAR типа FLOAT согласно справке возможно и напрямую, но для того чтобы задать дополнительные параметры преобразования можно использовать следующие ФМ:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
|
DATA: gv_char_val TYPE rscvp-valc2, gv_float_val TYPE F VALUE '1.0324'. CALL FUNCTION 'FLTP_CHAR_CONVERSION' EXPORTING decim = 4 " <-- количество символов после запятой expon = 0 " <-- количество символов экспоненты ivalu = '' " <-- Если X и в INPUT пусто, в flstr запишется '0' INPUT = gv_float_val maskn = '_' " Выведет маску ввода если INPUT и IVALU пустые IMPORTING flstr = gv_char_val. WRITE gv_char_val. CLEAR gv_float_val. " Обратное преобразование CALL FUNCTION 'CHAR_FLTP_CONVERSION' EXPORTING STRING = gv_char_val IMPORTING flstr = gv_float_val EXCEPTIONS exponent_too_big = 1 exponent_too_small = 2 string_not_fltp = 3 too_many_decim = 4 OTHERS = 5. CHECK sy-subrc = 0. WRITE gv_float_val STYLE cl_abap_format=>o_simple. |
Или через строковые шаблоны.