ABAP Keyword Documentation → ABAP − Reference → Processing Internal Data → Assignments → Lossless Assignments → Lossless Assignments - Rules → Checking Elementary Data Objects
Lossless Assignment
This example demonstrates how the operator EXACT is used to make lossless assignments.
Other versions: 7.31 | 7.40 | 7.54
Source Code
    DATA: text     TYPE string VALUE `4 Apples + 2 Oranges`,
          num_text TYPE n LENGTH 8.
    DATA(out) = cl_demo_output=>new(
      )->begin_section( text
      )->begin_section( `Not really exact:` ).
    num_text = text.
    out->write_data( num_text
      )->next_section( `Try to be exact:` ).
    TRY.
        num_text = EXACT #( text ).
        out->write_data( num_text ).
      CATCH cx_sy_conversion_error INTO DATA(exc).
        out->write_text( exc->get_text( ) ).
    ENDTRY.
    out->display( ).
Description
Without the operator EXACT, text is assigned to num_text without the validity of the assigned value being checked against the associated
conversion rules. This produces a value that is not very intuitive, "00000042".
Using the operator EXACT, the value that is passed is checked and an exception is raised in the case in question.