ARTICLE
Source Field Type c
Numeric Target Fields
Target Conversion
i ,
int8 ,
( b , s )The source field must contain a number in
mathematical or commercial notation. If not, the handleable exception
CX_SY_CONVERSION_NO_NUMBER is raised. Exception: A source field
that contains only blank characters is interpreted as the number zero.
Scientific notation is not allowed, unless it can be interpreted as a
mathematical notation. Decimal places
are rounded to whole-number values. If the number is in the value
range of data types i ,
int8 ,
( b , s ), it is converted to the corresponding internal
representation of an integral number, otherwise the handleable exception
CX_SY_CONVERSION_OVERFLOW is raised.
p The source field must contain a number in mathematical or
commercial notation. If not, the handleable exception
CX_SY_CONVERSION_NO_NUMBER is raised. Exception: A source field that
contains only blank characters is interpreted as the number zero.
Scientific notation is not allowed, unless it can be interpreted as a
mathematical notation. Decimal places are rounded to the number of
decimal places in the target field. If the number is in the value range
of the data type of the target field, it is converted to the internal
representation of a packed number, otherwise the handleable exception
CX_SY_CONVERSION_OVERFLOW is raised.
decfloat16 , decfloat34 The source field must contain a
number in mathematical ,
scientific , or
commercial notation . If not, the
handleable exception CX_SY_CONVERSION_NO_NUMBER is raised.
Exception: A source field that contains only blank characters is
interpreted as the number zero. If the number of digits is greater than
16 or 34, it is rounded to 16 or 34 places. If the absolute value of the
number is less than 1E-398 or 1E-6176, it is rounded to 0. If the number
is in the value range of the data types decfloat16 or
decfloat34 , it is converted to the internal representation of a
decimal floating point number, otherwise the handleable exception
CX_SY_CONVERSION_OVERFLOW is raised. If the mantissa of the target
field is long enough, the scaling of the source
field is preserved. The sign is always preserved, even if the number has
the value 0.
f The source field must contain a number in
scientific notation , with the
first blank after a number ending this number. If not, the handleable
exception CX_SY_CONVERSION_NO_NUMBER is raised. Exception: A
source field that contains only blanks or that starts with blanks not
followed by a valid number is interpreted as zero.
Mathematical or
commercial notation is not
permitted unless it can be interpreted as scientific notation.
Exception: Commercial notation where the sign on the right is not
separated by blanks is valid if the character string starts directly
with the digits. If the mantissa contains more than 17 digits, surplus
digits are rounded up or down. If the number is in the
value range of data type f , it is
converted to the internal representation of a binary floating point
number, otherwise the handleable exception CX_SY_CONVERSION_OVERFLOW
is raised. If the decimal number cannot be represented as a binary
floating point number, the nearest value is used.
Note
Character-Like Target Fields
Target Conversion
c The characters in the source field are inserted in the
target field, left-aligned. Trailing spaces in the source field are not
passed. If the target field is longer than the number of characters
passed, it is padded with blank characters to the right. If the target
field is shorter, it is truncated on the right.
string The characters in the source field are inserted in the
target field, left-aligned. Trailing spaces in the source field are not
passed. The length of the target field is determined by the number of
characters passed.
n The characters in the source field that represent digits are
inserted in the target field, right-aligned. Other characters are ignor
ed. If the target field is longer than the number of digits in the
source field, it is padded to the left with the character "0". If the
target field is shorter, the characters are cut off from the left.
d The same conversion rules apply as to a field of type c
of length 8. If the source field does not contain a valid date in
the first eight characters, in the format "yyyymmdd" , an invalid
date is created in the target field.
t The same conversion rules apply as to a field of type c
with the length 6, with the exception that trailing blanks are
passed and if the target field is longer than the number of characters
passed, the field is padded to the right with the character "0".
Notes
In ABAP, the trailing blanks in source
fields of type c are ignored, by default. An assignment from
source type c to target type t is an exception to this
rule. To assign source fields of type c to target fields
(particularly target fields of type string ) and respect the
trailing blanks, the addition RESPECTING BLANKS of the statement
CONCATENATE can be used.
If characters are cut off on the right when character strings containing
non-Unicode double-byte characters
are assigned, such a character can be split down the middle, which
generally produces an invalid character at the right edge. To prevent
this, the method CL_SCP_LINEBREAK_UTIL= STRING_SPLIT_AT_POSITION
can be used.
Byte-Like Target Fields
Target Conversion
x The characters in the source field are interpreted as the
representation of the value of a half-byte in hexadecimal
representation. If the valid characters "0" to "9" and " A " to "
F " appear, the corresponding half-byte value is passed to the
memory of the target field, left-aligned. If the target field is longer
than the number of half-bytes passed, it is padded to the right with
hexadecimal 0. If it is too short, the number is truncated on the right.
The first invalid character terminates the conversion from the position
of this character and the half-bytes not filled up to that point are
padded with hexadecimal 0.
xstring The same conversion rules apply as to a field of type
x . Half-bytes are passed to the target field, and the length of
the target field is determined by the number of valid characters in the
source field. If number of valid characters in the source field is odd,
the last remaining half-byte in the target field is padded with
hexadecimal 0.
Documentation extract taken from SAP system, � Copyright SAP AG. All rights reserved