While moving a decimal value to Comp-5, you just need to consider these: it stores only the integer portion and ignores the decimal portion.

Suppose you have defined a field with PIC 9(07)V99 and you moved a value from this data type to COMP-5.

COBOL Example: How to use COMP-5.

01 My-data     PIC 9(07)v99 value 1234567.10.
01 Out-data    comp-5 or S9(07)v99 Comp-5.
   MOVE My-data   to  Out-data.

The result will be: 1234567

Resolution

The key point I want to share is that Comp-5 stores only integer parts and truncates decimal parts.

Note: So, you cannot use comp-5 as S9(07)v99, but you can use it as S9(09).

More details of COMP-5

  • Comp-5 stores the data in the form of Binary ( because binary doesn’t support decimals)
  • It has boundaries. It stores as 2/4/8 bytes internally
  • S9(1) to S9(4) => 2 bytes(half)
  • S9(5) to S9(9) ==> 4 bytes(full)
  • S9(10) to S9(18) ==> 8 bytes(double)
  • With or without ‘S’ you can define the Comp-5 data types

References

LATEST POSTS

Ingesting Data from AWS S3 into Databricks with Auto Loader: Building a Medallion Architecture

In this blog post, we will explore efficient methods for ingesting data from Amazon S3 into Databricks using Auto Loader. Additionally, we will discuss how to perform data transformations and implement a Medallion architecture to improve the management and processing of large datasets. What is the Medallion Architecture? The Medallion architecture is a data modeling…

Something went wrong. Please refresh the page and/or try again.