ABAP Keyword Documentation → ABAP − Reference → Processing Internal Data → Assignments → Assigning References → Setting Field Symbols → ASSIGN → ASSIGN - casting_spec → Casting Examples
Field Symbols, Casting Decimal Places
This example demonstrates how a casting of decimal places is carried out.
Other versions: 7.31 | 7.40 | 7.54
Source Code
DATA: pack1 TYPE p DECIMALS 2 VALUE '400',
pack2 TYPE p DECIMALS 2,
pack3 TYPE p DECIMALS 2.
FIELD-SYMBOLS: <f1> TYPE ANY ,
<f2> TYPE ANY.
DATA(out) = cl_demo_output=>new(
)->begin_section( 'Cast of decimal places' ).
out->write_data( pack1 ).
<span class="blue">* correct --------------------------------------------------------------</span>
ASSIGN pack1 TO <f1> CASTING TYPE p DECIMALS 1.
out->write( |<f1>: { <f1> }| ).
pack2 = <f1>.
out->write( |pack2: { pack2 }| ).
ASSIGN pack2 TO <f2> CASTING TYPE p DECIMALS 4.
out->write( |<f2>: { <f2> }| ).
pack3 = <f1> + <f2>.
out->write( |pack3: { pack3 }| ).
<f2> = '1234.56789'.
out->write( |<f2>: { <f2> }| ).
out->write( |pack2: { pack2 }| ).
out->display( ).
<span class="blue">* obsolete, not allowed in methods -------------------------------------</span>
"ASSIGN pack1 TO <f1> DECIMALS 1.
"pack2 = <f1>.
"ASSIGN pack2 TO <f2> DECIMALS 4.
"pack3 = <f1> + <f2>.
"<f2> = '1234.56789'.
Description
The three fields of type p
all have two decimal places. The field symbols
<f1>
and <f2>
are given one or four decimal places. The numeric values are different for the field symbols and the fields assigned to them.
The section of the method that has been commented out also shows the syntax for the relevant obsolete casting.