{"id":1579,"date":"2023-08-09T11:00:00","date_gmt":"2023-08-09T05:30:00","guid":{"rendered":"https:\/\/zmainframes.com\/zlog\/?p=1579"},"modified":"2023-08-07T17:21:48","modified_gmt":"2023-08-07T11:51:48","slug":"understanding-numval-in-cobol-a-guide-with-examples","status":"publish","type":"post","link":"https:\/\/zmainframes.com\/zlog\/understanding-numval-in-cobol-a-guide-with-examples\/","title":{"rendered":"Understanding NUMVAL in COBOL: A Guide with Examples"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">Understanding NUMVAL in COBOL<\/h2>\n\n\n\n<p>COBOL, short for Common Business-Oriented Language, is a programming language that has been widely used in business and financial applications for decades. One of the essential aspects of COBOL programming is working with data, particularly numeric data. In this article, we will delve deep into the concept of <code>NUMVAL<\/code> in COBOL \u2013 what it is, how it is used, and we&#8217;ll provide numerous examples to illustrate its functionality.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">What is NUMVAL?<\/h2>\n\n\n\n<p><code>NUMVAL<\/code> is a COBOL intrinsic function that is used to convert a string representation of a number into its equivalent numeric value. In other words, it is used to convert a character string containing digits into a numeric data item that can be used for arithmetic operations or comparisons. The result of the <code>NUMVAL<\/code> function is a numeric value that can be assigned to a numeric data item in your COBOL program.<\/p>\n\n\n\n<p>The general syntax of the <code>NUMVAL<\/code> function is as follows:<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#adbac7;--cbp-line-number-width:7.70001220703125px;line-height:1.25rem\"><span style=\"display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#2d333d;color:#9eadbd\">COBOL<\/span><span role=\"button\" tabindex=\"0\" data-code=\"NUMVAL (source-string, numeric-data-item [, STATUS])\" style=\"color:#adbac7;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki github-dark-dimmed\" style=\"background-color: #22272e\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #6CB6FF\">NUMVAL<\/span><span style=\"color: #ADBAC7\"> (source-string, numeric-data-item [, <\/span><span style=\"color: #F47067\">STATUS<\/span><span style=\"color: #ADBAC7\">])<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>source-string<\/code>: This is the character string that contains the numeric value you want to convert.<\/li>\n\n\n\n<li><code>numeric-data-item<\/code>: This is the target numeric data item that will hold the converted numeric value.<\/li>\n\n\n\n<li><code>STATUS<\/code>: An optional parameter that specifies the result of the conversion. It can take on values like <code>NUMVAL_OK<\/code>, <code>NUMVAL_ERR<\/code>, etc.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">How is NUMVAL Used?<\/h2>\n\n\n\n<p><code>NUMVAL<\/code> is primarily used when you need to convert user input or external data (often in string format) into a format that can be processed and manipulated as numeric data within your COBOL program. This is particularly common when dealing with file processing or when accepting user input in the form of strings, such as account numbers, transaction amounts, or other numerical values.<\/p>\n\n\n\n<p>By using <code>NUMVAL<\/code>, you can ensure that the input data is correctly interpreted as a numeric value, allowing you to perform arithmetic operations, comparisons, and other calculations without errors.<\/p>\n\n\n\n<p>Let&#8217;s explore some practical examples to understand how <code>NUMVAL<\/code> works and how it can be used in COBOL programs.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Example 1: Simple Conversion<\/h2>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#adbac7;--cbp-line-number-width:15.400001525878906px;line-height:1.25rem\"><span style=\"display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#2d333d;color:#9eadbd\">COBOL<\/span><span role=\"button\" tabindex=\"0\" data-code=\"IDENTIFICATION DIVISION.\nPROGRAM-ID. NumvalExample.\n\nDATA DIVISION.\nWORKING-STORAGE SECTION.\n01 Source-String        PIC X(10) VALUE '12345'.\n01 Numeric-Value        PIC 9(5).\n\nPROCEDURE DIVISION.\n    MOVE Source-String TO Numeric-Value\n    DISPLAY 'Numeric Value: ' Numeric-Value\n    STOP RUN.\" style=\"color:#adbac7;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki github-dark-dimmed\" style=\"background-color: #22272e\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #F47067\">IDENTIFICATION DIVISION<\/span><span style=\"color: #ADBAC7\">.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F47067\">PROGRAM-ID<\/span><span style=\"color: #ADBAC7\">. <\/span><span style=\"color: #DCBDFB\">NumvalExample<\/span><span style=\"color: #ADBAC7\">.<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F47067\">DATA DIVISION<\/span><span style=\"color: #ADBAC7\">.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F47067\">WORKING-STORAGE SECTION<\/span><span style=\"color: #ADBAC7\">.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6CB6FF\">01<\/span><span style=\"color: #ADBAC7\"> Source-String        <\/span><span style=\"color: #F47067\">PIC X<\/span><span style=\"color: #ADBAC7\">(<\/span><span style=\"color: #6CB6FF\">10<\/span><span style=\"color: #ADBAC7\">) <\/span><span style=\"color: #F47067\">VALUE<\/span><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #96D0FF\">&#39;12345&#39;<\/span><span style=\"color: #ADBAC7\">.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6CB6FF\">01<\/span><span style=\"color: #ADBAC7\"> Numeric-Value        <\/span><span style=\"color: #F47067\">PIC 9<\/span><span style=\"color: #ADBAC7\">(<\/span><span style=\"color: #6CB6FF\">5<\/span><span style=\"color: #ADBAC7\">).<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F47067\">PROCEDURE DIVISION<\/span><span style=\"color: #ADBAC7\">.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ADBAC7\">    <\/span><span style=\"color: #F47067\">MOVE<\/span><span style=\"color: #ADBAC7\"> Source-String <\/span><span style=\"color: #F47067\">TO<\/span><span style=\"color: #ADBAC7\"> Numeric-Value<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ADBAC7\">    <\/span><span style=\"color: #F47067\">DISPLAY<\/span><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #96D0FF\">&#39;Numeric Value: &#39;<\/span><span style=\"color: #ADBAC7\"> Numeric-Value<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ADBAC7\">    <\/span><span style=\"color: #F47067\">STOP RUN<\/span><span style=\"color: #ADBAC7\">.<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p>In this example, we have a simple COBOL program that demonstrates the use of <code>NUMVAL<\/code> for converting a character string to a numeric value. The program defines a <code>Source-String<\/code> containing the value &#8216;12345&#8217; and a <code>Numeric-Value<\/code> data item. The <code>MOVE<\/code> statement uses the <code>NUMVAL<\/code> function to convert the <code>Source-String<\/code> into a numeric value and stores it in the <code>Numeric-Value<\/code> data item. The <code>DISPLAY<\/code> statement then outputs the converted numeric value.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Example 2: Handling Conversion Errors<\/h2>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#adbac7;--cbp-line-number-width:15.400001525878906px;line-height:1.25rem\"><span style=\"display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#2d333d;color:#9eadbd\">COBOL<\/span><span role=\"button\" tabindex=\"0\" data-code=\"IDENTIFICATION DIVISION.\nPROGRAM-ID. NumvalErrorExample.\n\nDATA DIVISION.\nWORKING-STORAGE SECTION.\n01 Source-String        PIC X(10) VALUE '12A34'.\n01 Numeric-Value        PIC 9(5).\n01 Conversion-Status    PIC X(10).\n\nPROCEDURE DIVISION.\n    MOVE 'NUMVAL_ERR' TO Conversion-Status\n    MOVE Source-String TO Numeric-Value\n    NUMVAL (Source-String, Numeric-Value, Conversion-Status)\n    IF Conversion-Status = 'NUMVAL_OK'\n        DISPLAY 'Numeric Value: ' Numeric-Value\n    ELSE\n        DISPLAY 'Conversion Error'\n    END-IF\n    STOP RUN.\" style=\"color:#adbac7;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki github-dark-dimmed\" style=\"background-color: #22272e\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #F47067\">IDENTIFICATION DIVISION<\/span><span style=\"color: #ADBAC7\">.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F47067\">PROGRAM-ID<\/span><span style=\"color: #ADBAC7\">. <\/span><span style=\"color: #DCBDFB\">NumvalErrorExample<\/span><span style=\"color: #ADBAC7\">.<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F47067\">DATA DIVISION<\/span><span style=\"color: #ADBAC7\">.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F47067\">WORKING-STORAGE SECTION<\/span><span style=\"color: #ADBAC7\">.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6CB6FF\">01<\/span><span style=\"color: #ADBAC7\"> Source-String        <\/span><span style=\"color: #F47067\">PIC X<\/span><span style=\"color: #ADBAC7\">(<\/span><span style=\"color: #6CB6FF\">10<\/span><span style=\"color: #ADBAC7\">) <\/span><span style=\"color: #F47067\">VALUE<\/span><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #96D0FF\">&#39;12A34&#39;<\/span><span style=\"color: #ADBAC7\">.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6CB6FF\">01<\/span><span style=\"color: #ADBAC7\"> Numeric-Value        <\/span><span style=\"color: #F47067\">PIC 9<\/span><span style=\"color: #ADBAC7\">(<\/span><span style=\"color: #6CB6FF\">5<\/span><span style=\"color: #ADBAC7\">).<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6CB6FF\">01<\/span><span style=\"color: #ADBAC7\"> Conversion-Status    <\/span><span style=\"color: #F47067\">PIC X<\/span><span style=\"color: #ADBAC7\">(<\/span><span style=\"color: #6CB6FF\">10<\/span><span style=\"color: #ADBAC7\">).<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F47067\">PROCEDURE DIVISION<\/span><span style=\"color: #ADBAC7\">.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ADBAC7\">    <\/span><span style=\"color: #F47067\">MOVE<\/span><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #96D0FF\">&#39;NUMVAL_ERR&#39;<\/span><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #F47067\">TO<\/span><span style=\"color: #ADBAC7\"> Conversion-Status<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ADBAC7\">    <\/span><span style=\"color: #F47067\">MOVE<\/span><span style=\"color: #ADBAC7\"> Source-String <\/span><span style=\"color: #F47067\">TO<\/span><span style=\"color: #ADBAC7\"> Numeric-Value<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ADBAC7\">    <\/span><span style=\"color: #6CB6FF\">NUMVAL<\/span><span style=\"color: #ADBAC7\"> (Source-String, Numeric-Value, Conversion-Status)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ADBAC7\">    <\/span><span style=\"color: #F47067\">IF<\/span><span style=\"color: #ADBAC7\"> Conversion-Status <\/span><span style=\"color: #F47067\">=<\/span><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #96D0FF\">&#39;NUMVAL_OK&#39;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ADBAC7\">        <\/span><span style=\"color: #F47067\">DISPLAY<\/span><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #96D0FF\">&#39;Numeric Value: &#39;<\/span><span style=\"color: #ADBAC7\"> Numeric-Value<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ADBAC7\">    <\/span><span style=\"color: #F47067\">ELSE<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ADBAC7\">        <\/span><span style=\"color: #F47067\">DISPLAY<\/span><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #96D0FF\">&#39;Conversion Error&#39;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ADBAC7\">    <\/span><span style=\"color: #F47067\">END-IF<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ADBAC7\">    <\/span><span style=\"color: #F47067\">STOP RUN<\/span><span style=\"color: #ADBAC7\">.<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p>In this example, we intentionally provide a non-numeric character (&#8216;A&#8217;) in the <code>Source-String<\/code> to demonstrate how to handle conversion errors using the <code>NUMVAL<\/code> function. The <code>Conversion-Status<\/code> data item is used to capture the status of the conversion. If the conversion is successful, the program displays the converted numeric value. If the conversion fails, it displays a &#8220;Conversion Error&#8221; message.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Example 3: Processing Numeric Data from External Source<\/h2>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#adbac7;--cbp-line-number-width:15.400001525878906px;line-height:1.25rem\"><span style=\"display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#2d333d;color:#9eadbd\">COBOL<\/span><span role=\"button\" tabindex=\"0\" data-code=\"IDENTIFICATION DIVISION.\nPROGRAM-ID. NumvalExternalData.\n\nDATA DIVISION.\nFILE SECTION.\n01 Input-File            FILE STATUS IS Input-Status.\n02 Input-Record          PIC X(20).\n\nWORKING-STORAGE SECTION.\n01 Numeric-Value         PIC 9(5).\n01 Conversion-Status     PIC X(10).\n01 Input-Status          PIC 9.\n\nPROCEDURE DIVISION.\n    OPEN INPUT Input-File\n    PERFORM UNTIL Input-Status = 10\n        READ Input-File INTO Input-Record\n        IF Input-Status = 0\n            MOVE 'NUMVAL_ERR' TO Conversion-Status\n            MOVE Input-Record TO Numeric-Value\n            NUMVAL (Input-Record, Numeric-Value, Conversion-Status)\n            IF Conversion-Status = 'NUMVAL_OK'\n                DISPLAY 'Numeric Value: ' Numeric-Value\n            ELSE\n                DISPLAY 'Conversion Error'\n            END-IF\n        END-IF\n    END-PERFORM\n    CLOSE Input-File\n    STOP RUN.\" style=\"color:#adbac7;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki github-dark-dimmed\" style=\"background-color: #22272e\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #F47067\">IDENTIFICATION DIVISION<\/span><span style=\"color: #ADBAC7\">.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F47067\">PROGRAM-ID<\/span><span style=\"color: #ADBAC7\">. <\/span><span style=\"color: #DCBDFB\">NumvalExternalData<\/span><span style=\"color: #ADBAC7\">.<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F47067\">DATA DIVISION<\/span><span style=\"color: #ADBAC7\">.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F47067\">FILE SECTION<\/span><span style=\"color: #ADBAC7\">.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6CB6FF\">01<\/span><span style=\"color: #ADBAC7\"> Input-File            <\/span><span style=\"color: #F47067\">FILE<\/span><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #F47067\">STATUS<\/span><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #F47067\">IS<\/span><span style=\"color: #ADBAC7\"> Input-Status.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6CB6FF\">02<\/span><span style=\"color: #ADBAC7\"> Input-Record          <\/span><span style=\"color: #F47067\">PIC X<\/span><span style=\"color: #ADBAC7\">(<\/span><span style=\"color: #6CB6FF\">20<\/span><span style=\"color: #ADBAC7\">).<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F47067\">WORKING-STORAGE SECTION<\/span><span style=\"color: #ADBAC7\">.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6CB6FF\">01<\/span><span style=\"color: #ADBAC7\"> Numeric-Value         <\/span><span style=\"color: #F47067\">PIC 9<\/span><span style=\"color: #ADBAC7\">(<\/span><span style=\"color: #6CB6FF\">5<\/span><span style=\"color: #ADBAC7\">).<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6CB6FF\">01<\/span><span style=\"color: #ADBAC7\"> Conversion-Status     <\/span><span style=\"color: #F47067\">PIC X<\/span><span style=\"color: #ADBAC7\">(<\/span><span style=\"color: #6CB6FF\">10<\/span><span style=\"color: #ADBAC7\">).<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6CB6FF\">01<\/span><span style=\"color: #ADBAC7\"> Input-Status          <\/span><span style=\"color: #F47067\">PIC 9.<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F47067\">PROCEDURE DIVISION<\/span><span style=\"color: #ADBAC7\">.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ADBAC7\">    <\/span><span style=\"color: #F47067\">OPEN<\/span><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #F47067\">INPUT<\/span><span style=\"color: #ADBAC7\"> Input-File<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ADBAC7\">    <\/span><span style=\"color: #F47067\">PERFORM<\/span><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #F47067\">UNTIL<\/span><span style=\"color: #ADBAC7\"> Input-Status <\/span><span style=\"color: #F47067\">=<\/span><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #6CB6FF\">10<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ADBAC7\">        <\/span><span style=\"color: #F47067\">READ<\/span><span style=\"color: #ADBAC7\"> Input-File <\/span><span style=\"color: #F47067\">INTO<\/span><span style=\"color: #ADBAC7\"> Input-Record<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ADBAC7\">        <\/span><span style=\"color: #F47067\">IF<\/span><span style=\"color: #ADBAC7\"> Input-Status <\/span><span style=\"color: #F47067\">=<\/span><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #6CB6FF\">0<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ADBAC7\">            <\/span><span style=\"color: #F47067\">MOVE<\/span><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #96D0FF\">&#39;NUMVAL_ERR&#39;<\/span><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #F47067\">TO<\/span><span style=\"color: #ADBAC7\"> Conversion-Status<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ADBAC7\">            <\/span><span style=\"color: #F47067\">MOVE<\/span><span style=\"color: #ADBAC7\"> Input-Record <\/span><span style=\"color: #F47067\">TO<\/span><span style=\"color: #ADBAC7\"> Numeric-Value<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ADBAC7\">            <\/span><span style=\"color: #6CB6FF\">NUMVAL<\/span><span style=\"color: #ADBAC7\"> (Input-Record, Numeric-Value, Conversion-Status)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ADBAC7\">            <\/span><span style=\"color: #F47067\">IF<\/span><span style=\"color: #ADBAC7\"> Conversion-Status <\/span><span style=\"color: #F47067\">=<\/span><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #96D0FF\">&#39;NUMVAL_OK&#39;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ADBAC7\">                <\/span><span style=\"color: #F47067\">DISPLAY<\/span><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #96D0FF\">&#39;Numeric Value: &#39;<\/span><span style=\"color: #ADBAC7\"> Numeric-Value<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ADBAC7\">            <\/span><span style=\"color: #F47067\">ELSE<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ADBAC7\">                <\/span><span style=\"color: #F47067\">DISPLAY<\/span><span style=\"color: #ADBAC7\"> <\/span><span style=\"color: #96D0FF\">&#39;Conversion Error&#39;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ADBAC7\">            <\/span><span style=\"color: #F47067\">END-IF<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ADBAC7\">        <\/span><span style=\"color: #F47067\">END-IF<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ADBAC7\">    <\/span><span style=\"color: #F47067\">END-PERFORM<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ADBAC7\">    <\/span><span style=\"color: #F47067\">CLOSE<\/span><span style=\"color: #ADBAC7\"> Input-File<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ADBAC7\">    <\/span><span style=\"color: #F47067\">STOP RUN<\/span><span style=\"color: #ADBAC7\">.<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p>In this example, we demonstrate how <code>NUMVAL<\/code> can be used to process numeric data from an external file. The program reads records from an input file and attempts to convert each record using the <code>NUMVAL<\/code> function. If the conversion is successful, the program displays the converted numeric value. If not, it displays a &#8220;Conversion Error&#8221; message.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Conclusion<\/h2>\n\n\n\n<p>In the world of COBOL programming, the <code>NUMVAL<\/code> function plays a crucial role in converting character strings containing numeric data into usable numeric values. This is essential for performing calculations, making comparisons, and processing external data sources accurately. By understanding the <code>NUMVAL<\/code> function and its usage, COBOL programmers can ensure that their programs handle numeric data effectively and with precision.<\/p>\n\n\n\n<p>Throughout this article, we explored the concept of <code>NUMVAL<\/code> in COBOL, its syntax, and its practical applications. We examined various examples to illustrate how <code>NUMVAL<\/code> can be used in different scenarios, such as simple conversions, handling conversion errors, and processing numeric data from external sources. Armed with this knowledge, COBOL developers can confidently utilize the <code>NUMVAL<\/code> function to enhance the accuracy and reliability of their programs, particularly when dealing with numeric data.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Understanding NUMVAL in COBOL COBOL, short for Common Business-Oriented Language, is a programming language that has been widely used in [&hellip;]<\/p>\n","protected":false},"author":515,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[27],"tags":[306,469,468,37,466,470,467],"class_list":["post-1579","post","type-post","status-publish","format-standard","hentry","category-cobol","tag-cobol-2","tag-handling-conversion-errors","tag-how-is-numval-used","tag-mainframes","tag-numval-in-cobol","tag-processing-numeric-data","tag-what-is-numval"],"amp_enabled":true,"rttpg_featured_image_url":null,"rttpg_author":{"display_name":"zMainframes","author_link":"https:\/\/zmainframes.com\/zlog\/author\/zmainframes\/"},"rttpg_comment":0,"rttpg_category":"<a href=\"https:\/\/zmainframes.com\/zlog\/mainframes\/cobol\/\" rel=\"category tag\">Cobol<\/a>","rttpg_excerpt":"Understanding NUMVAL in COBOL COBOL, short for Common Business-Oriented Language, is a programming language that has been widely used in [&hellip;]","_links":{"self":[{"href":"https:\/\/zmainframes.com\/zlog\/wp-json\/wp\/v2\/posts\/1579","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/zmainframes.com\/zlog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/zmainframes.com\/zlog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/zmainframes.com\/zlog\/wp-json\/wp\/v2\/users\/515"}],"replies":[{"embeddable":true,"href":"https:\/\/zmainframes.com\/zlog\/wp-json\/wp\/v2\/comments?post=1579"}],"version-history":[{"count":2,"href":"https:\/\/zmainframes.com\/zlog\/wp-json\/wp\/v2\/posts\/1579\/revisions"}],"predecessor-version":[{"id":2002,"href":"https:\/\/zmainframes.com\/zlog\/wp-json\/wp\/v2\/posts\/1579\/revisions\/2002"}],"wp:attachment":[{"href":"https:\/\/zmainframes.com\/zlog\/wp-json\/wp\/v2\/media?parent=1579"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/zmainframes.com\/zlog\/wp-json\/wp\/v2\/categories?post=1579"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/zmainframes.com\/zlog\/wp-json\/wp\/v2\/tags?post=1579"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}