Get Example source ABAP code based on a different SAP table
ARTICLE
Source Field Type decfloat16, decfloat34 If the source field does not contain a valid decimal floating point number, the treatable exception CX_SY_CONVERSION_NO_NUMBER is raised, except in the case of the assignment to another decimal floating point number. In ABAP, invalid decimal floating point numbers also include the special values '+Infinity', '-Infinity', 'NaN', and 'sNaN', which represent infinity or invalid numbers and are designated in the IEEE-754-2008 standard. ITOC
Numeric Target FieldsTargetConversion i, int8, (b, s)The value of the decimal floating point number is rounded up to the nearest integer. If this number is within the value range for the data type i, int8, (b, s), it is converted to the internal representation of the corresponding integer number. If the number is not within this range, the treatable exception CX_SY_CONVERSION_OVERFLOW occurs. pThe value of the decimal floating point number is rounded to the number of decimal places in the target field. If this number is within the value range for the data type of the target field, it is converted to the internal representation of a packed number. If the number is not within this range, the treatable exception CX_SY_CONVERSION_OVERFLOW occurs. decfloat16, decfloat34If an assignment is made to the same data type, the content is passed unconverted. For an assignment from decfloat34 to decfloat16 the mantissa is shortened from 34 to 16 places, and commercially rounded if necessary. If the mantissa of the target field is long enough, the scaling is preserved. If the value range of decfloat16 is exceeded, the treatable exception CX_SY_CONVERSION_OVERFLOW is raised. ffThe value of the decimal floating point number is applied in the value of a binary floating point number. If the decimal number cannot be represented as a binary floating point number, the nearest value is used. If the value is outside the value range for floating point numbers, the handleable exception CX_SY_CONVERSION_OVERFLOW is raised.
Character-Like Target FieldsTargetConversion cThe content of the source field is first converted into a mathematical or scientific notation, as described for the data type string. The result of this conversion is then copied, right-justified into the target field. If the target field is longer than the text string, the space to the left is filled with blank spaces. If the target field is shorter than the text string, mathematical notation is converted into scientific notation and if necessary the mantissa is commercially rounded. If the length is not sufficient for at least one digit of the mantissa, the treatable exception CX_SY_CONVERSION_OVERFLOW is raised. stringIf the exponent of the decimal floating point number is less than 0 and the absolute value of the number is bigger than 1E-6, the floating point number is formatted as follows into mathematical notation without spaces: The numerical sequence is made up of the mantissa of the decimal floating point number without leading zeros. If the exponent of the decimal floating point number is smaller than 0, a decimal point is inserted at the corresponding position. If the exponent of the decimal floating point number is bigger than 0 or the absolute value of the number is smaller than 1E-6, the floating point number is formatted as follows into scientific notation: The mantissa is made up of the mantissa of the decimal floating point number without leading zeros. If the mantissa contains more than one decimal place, a decimal point is inserted after the first place. The exponent is always displayed with algebraic sign and without leading zeros. In both depictions the algebraic sign is displayed for negative values but not for positive. Both depictions are also used if the value of the decimal floating point number is zero. The maximum length of the target field is 24 for decfloat16 and 42 for decfloat34. nThe value of the decimal floating point number is rounded up to the nearest integer. The absolute value is transferred as a character string right-aligned to the target field. If the target field is longer than the character string, the field is filled with zeros from the left. If it is too short, the treatable exception CX_SY_CONVERSION_OVERFLOW is raised. dThe content of the source field is first converted to the data type i (see above), and then to the type d (see the conversion table for source field type i, int8, (b, s)). tThe content of the source field is first converted to the data type i (see above), and then to the type t (see the conversion table for source field type i, int8, (b, s)).
Notes
The conversion rule for floating point numbers to text strings is as follows: a text string filled by the assignment of a decimal floating point number produces the same internal representation as in the original decimal floating point number (preserves the scaling).
The formatting options STYLE for the statement WRITE ... TO and STYLE for embedded expressions in string templates of string expressions provide additional formats for the assignment of decimal floating point numbers to text strings.
Examples The following table shows how decimal floating point numbers are converted to text strings: Floating point numberText string 123E+0123 123E+11.23E+3 2E+1 2E+1 1230E-2 12.30 5E-6 0.000005 50E-7 0.0000050 5E-7 5E-7 50E-8 5.0E-7 -0E+0 -0 0E-100 0E-100
Byte-Like Target FieldsTargetConversion xThe content of the source field is first converted to the data type i (see above), and then to the type x (see the conversion table for source field type i, int8, (b, s)). xstringThe content of the source field is first converted to the data type i (see above), and then to the type x (see the conversion table for source field type i, int8, (b, s)).