The NUMBER data type represents comprehensive numeric data management and sophisticated mathematical computation capabilities within COBOL programming environments, providing advanced precision control features, enhanced decimal accuracy mechanisms, and intelligent numeric processing that enable precise business calculations, complex mathematical operations, and systematic numeric data handling processes. This data type embodies modern numeric programming principles by supporting comprehensive precision specifications, enabling sophisticated decimal arithmetic workflows, and facilitating precise numeric control requirements while maintaining calculation accuracy, ensuring predictable numeric behavior, and enabling flexible numeric architectures across enterprise applications requiring exact decimal computations, financial calculations, and reliable numeric processing throughout sophisticated business logic scenarios and mathematical computation workflows.
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849*> Basic NUMBER declarations 01 WS-CALCULATION-AMOUNT NUMBER(10,2). 01 WS-INTEREST-RATE NUMBER(5,4). 01 WS-PRECISION-VALUE NUMBER(18,6). 01 WS-COUNTER NUMBER(8). *> NUMBER with VALUE clauses 01 WS-TAX-RATE NUMBER(4,4) VALUE 0.0825. 01 WS-DISCOUNT-PERCENT NUMBER(5,2) VALUE 15.50. 01 WS-MINIMUM-BALANCE NUMBER(10,2) VALUE -500.00. *> NUMBER in table structures 01 WS-MONTHLY-SALES-TABLE. 05 WS-SALES-MONTH OCCURS 12 TIMES. 10 WS-MONTH-TOTAL NUMBER(12,2). 10 WS-MONTH-AVERAGE NUMBER(10,2). 10 WS-GROWTH-RATE NUMBER(6,4). *> NUMBER with sign specifications 01 WS-SIGNED-NUMBERS. 05 WS-PROFIT-LOSS NUMBER(15,2) SIGN LEADING. 05 WS-VARIANCE NUMBER(12,4) SIGN TRAILING. 05 WS-ADJUSTMENT NUMBER(10,2) SIGN SEPARATE. *> NUMBER for financial calculations 01 WS-FINANCIAL-DATA. 05 WS-PRINCIPAL-AMOUNT NUMBER(15,2). 05 WS-ANNUAL-RATE NUMBER(6,5). 05 WS-COMPOUND-FACTOR NUMBER(8,6). 05 WS-FUTURE-VALUE NUMBER(18,2). *> NUMBER with USAGE specifications 01 WS-DISPLAY-NUMBERS. 05 WS-FORMATTED-AMOUNT NUMBER(12,2) USAGE DISPLAY. 05 WS-REPORT-TOTAL NUMBER(15,2) USAGE DISPLAY. *> NUMBER arrays for statistical analysis 01 WS-STATISTICS-ARRAY. 05 WS-DATA-POINTS OCCURS 100 TIMES. 10 WS-VALUE NUMBER(10,4). 10 WS-WEIGHT NUMBER(6,4). 05 WS-MEAN-VALUE NUMBER(12,6). 05 WS-STANDARD-DEVIATION NUMBER(10,6). *> NUMBER for precise calculations 01 WS-PRECISION-CALCULATIONS. 05 WS-PI-VALUE NUMBER(15,12) VALUE 3.141592653589. 05 WS-EULER-CONSTANT NUMBER(15,12) VALUE 2.718281828459. 05 WS-GOLDEN-RATIO NUMBER(15,12) VALUE 1.618033988749.
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152*> Addition with NUMBER ADD WS-BASE-AMOUNT TO WS-TOTAL-AMOUNT ADD WS-INTEREST WS-FEES GIVING WS-GRAND-TOTAL ADD 1 TO WS-COUNTER *> Subtraction with NUMBER SUBTRACT WS-DISCOUNT FROM WS-GROSS-AMOUNT SUBTRACT WS-TAXES WS-FEES FROM WS-NET-AMOUNT SUBTRACT WS-PREVIOUS-BALANCE FROM WS-CURRENT-BALANCE GIVING WS-CHANGE-AMOUNT *> Multiplication with NUMBER MULTIPLY WS-QUANTITY BY WS-UNIT-PRICE MULTIPLY WS-PRINCIPAL BY WS-INTEREST-RATE GIVING WS-INTEREST-AMOUNT MULTIPLY WS-SALES-AMOUNT BY 0.15 GIVING WS-COMMISSION *> Division with NUMBER DIVIDE WS-TOTAL-AMOUNT BY WS-NUMBER-OF-MONTHS GIVING WS-MONTHLY-PAYMENT DIVIDE WS-TOTAL-SALES BY WS-SALES-COUNT GIVING WS-AVERAGE-SALE DIVIDE WS-ANNUAL-INCOME BY 12 GIVING WS-MONTHLY-INCOME REMAINDER WS-EXTRA-AMOUNT *> Complex calculations COMPUTE WS-COMPOUND-INTEREST = WS-PRINCIPAL * ((1 + WS-ANNUAL-RATE / WS-COMPOUNDS-PER-YEAR) ** (WS-COMPOUNDS-PER-YEAR * WS-YEARS)) COMPUTE WS-MONTHLY-PAYMENT = (WS-LOAN-AMOUNT * WS-MONTHLY-RATE) / (1 - ((1 + WS-MONTHLY-RATE) ** (-WS-NUMBER-OF-PAYMENTS))) *> Statistical calculations COMPUTE WS-VARIANCE = ((WS-VALUE1 - WS-MEAN) ** 2 + (WS-VALUE2 - WS-MEAN) ** 2 + (WS-VALUE3 - WS-MEAN) ** 2) / 3 *> Percentage calculations COMPUTE WS-PERCENTAGE = (WS-PART / WS-WHOLE) * 100 COMPUTE WS-GROWTH-RATE = ((WS-NEW-VALUE - WS-OLD-VALUE) / WS-OLD-VALUE) * 100 *> Rounding operations COMPUTE WS-ROUNDED-AMOUNT = FUNCTION ROUND(WS-PRECISE-AMOUNT, 2) COMPUTE WS-TRUNCATED-VALUE = FUNCTION INTEGER(WS-DECIMAL-VALUE)
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445IDENTIFICATION DIVISION. PROGRAM-ID. NUMBER-DEMONSTRATION. DATA DIVISION. WORKING-STORAGE SECTION. *> Financial calculation examples 01 WS-FINANCIAL-CALCULATIONS. 05 WS-LOAN-PRINCIPAL NUMBER(12,2). 05 WS-ANNUAL-INTEREST-RATE NUMBER(5,4). 05 WS-LOAN-TERM-YEARS NUMBER(3). 05 WS-MONTHLY-PAYMENT NUMBER(10,2). 05 WS-TOTAL-INTEREST NUMBER(12,2). 05 WS-TOTAL-AMOUNT-PAID NUMBER(15,2). *> Scientific calculation examples 01 WS-SCIENTIFIC-CALCULATIONS. 05 WS-PI NUMBER(15,12) VALUE 3.141592653589. 05 WS-RADIUS NUMBER(8,4). 05 WS-CIRCUMFERENCE NUMBER(12,4). 05 WS-AREA NUMBER(15,4). 05 WS-VOLUME NUMBER(18,4). *> Business metrics calculations 01 WS-BUSINESS-METRICS. 05 WS-GROSS-REVENUE NUMBER(15,2). 05 WS-TOTAL-EXPENSES NUMBER(15,2). 05 WS-NET-PROFIT NUMBER(15,2). 05 WS-PROFIT-MARGIN NUMBER(6,4). 05 WS-ROI-PERCENTAGE NUMBER(6,2). *> Statistical analysis examples 01 WS-STATISTICAL-DATA. 05 WS-DATA-POINTS OCCURS 10 TIMES. 10 WS-VALUE NUMBER(10,4). 05 WS-SUM NUMBER(15,4). 05 WS-MEAN NUMBER(12,6). 05 WS-VARIANCE NUMBER(15,8). 05 WS-STANDARD-DEVIATION NUMBER(12,6). *> Currency conversion examples 01 WS-CURRENCY-CONVERSION. 05 WS-USD-AMOUNT NUMBER(12,2). 05 WS-EXCHANGE-RATE NUMBER(8,6). 05 WS-FOREIGN-AMOUNT NUMBER(15,2). 05 WS-CONVERSION-FEE-RATE NUMBER(4,4) VALUE 0.0250. 05 WS-CONVERSION-FEE NUMBER(10,2). *> Tax calculation examples 01 WS-TAX-CALCULATIONS. 05 WS-TAXABLE-INCOME NUMBER(12,2). 05 WS-TAX-BRACKETS OCCURS 5 TIMES. 10 WS-BRACKET-THRESHOLD NUMBER(10,2). 10 WS-BRACKET-RATE NUMBER(4,4). 05 WS-TOTAL-TAX NUMBER(12,2). 05 WS-EFFECTIVE-TAX-RATE NUMBER(6,4). *> Investment portfolio examples 01 WS-PORTFOLIO-ANALYSIS. 05 WS-INVESTMENTS OCCURS 20 TIMES. 10 WS-INVESTMENT-VALUE NUMBER(12,2). 10 WS-ALLOCATION-PERCENT NUMBER(5,4). 05 WS-TOTAL-PORTFOLIO-VALUE NUMBER(15,2). 05 WS-PORTFOLIO-VARIANCE NUMBER(12,6). 05 WS-SHARPE-RATIO NUMBER(8,4). PROCEDURE DIVISION. MAIN-NUMBER-DEMONSTRATION. DISPLAY "=== COBOL NUMBER DATA TYPE DEMONSTRATION ===" DISPLAY SPACES PERFORM DEMONSTRATE-BASIC-NUMBER-OPERATIONS PERFORM DEMONSTRATE-FINANCIAL-CALCULATIONS PERFORM DEMONSTRATE-SCIENTIFIC-CALCULATIONS PERFORM DEMONSTRATE-STATISTICAL-ANALYSIS PERFORM DEMONSTRATE-BUSINESS-METRICS PERFORM DEMONSTRATE-CURRENCY-OPERATIONS PERFORM DEMONSTRATE-TAX-CALCULATIONS PERFORM DEMONSTRATE-PRECISION-CONTROL DISPLAY "=== NUMBER DEMONSTRATION COMPLETE ===" STOP RUN. DEMONSTRATE-BASIC-NUMBER-OPERATIONS. DISPLAY "=== BASIC NUMBER OPERATIONS ===" DISPLAY SPACES DISPLAY "Testing basic NUMBER arithmetic operations..." *> Initialize test values MOVE 1250.75 TO WS-LOAN-PRINCIPAL MOVE 0.0525 TO WS-ANNUAL-INTEREST-RATE MOVE 5 TO WS-LOAN-TERM-YEARS *> Basic addition ADD 150.25 TO WS-LOAN-PRINCIPAL DISPLAY " ✓ After adding fees: $" WS-LOAN-PRINCIPAL *> Basic subtraction SUBTRACT 50.00 FROM WS-LOAN-PRINCIPAL DISPLAY " ✓ After discount: $" WS-LOAN-PRINCIPAL *> Basic multiplication MULTIPLY WS-ANNUAL-INTEREST-RATE BY 12 GIVING WS-MONTHLY-PAYMENT DISPLAY " ✓ Monthly rate factor: " WS-MONTHLY-PAYMENT *> Basic division DIVIDE WS-LOAN-PRINCIPAL BY WS-LOAN-TERM-YEARS GIVING WS-MONTHLY-PAYMENT DISPLAY " ✓ Simple annual payment: $" WS-MONTHLY-PAYMENT *> Complex computation COMPUTE WS-TOTAL-INTEREST = WS-LOAN-PRINCIPAL * WS-ANNUAL-INTEREST-RATE * WS-LOAN-TERM-YEARS DISPLAY " ✓ Simple interest: $" WS-TOTAL-INTEREST DISPLAY SPACES. DEMONSTRATE-FINANCIAL-CALCULATIONS. DISPLAY "=== FINANCIAL CALCULATIONS ===" DISPLAY SPACES DISPLAY "Calculating loan payment schedules..." *> Sample loan data MOVE 250000.00 TO WS-LOAN-PRINCIPAL MOVE 0.0375 TO WS-ANNUAL-INTEREST-RATE MOVE 30 TO WS-LOAN-TERM-YEARS *> Calculate monthly payment using standard formula COMPUTE WS-MONTHLY-PAYMENT = (WS-LOAN-PRINCIPAL * (WS-ANNUAL-INTEREST-RATE / 12)) / (1 - ((1 + (WS-ANNUAL-INTEREST-RATE / 12)) ** (-(WS-LOAN-TERM-YEARS * 12)))) DISPLAY " 💰 Loan Details:" DISPLAY " Principal: $" WS-LOAN-PRINCIPAL DISPLAY " Annual Rate: " WS-ANNUAL-INTEREST-RATE DISPLAY " Term: " WS-LOAN-TERM-YEARS " years" DISPLAY " Monthly Payment: $" WS-MONTHLY-PAYMENT *> Calculate total amounts COMPUTE WS-TOTAL-AMOUNT-PAID = WS-MONTHLY-PAYMENT * WS-LOAN-TERM-YEARS * 12 COMPUTE WS-TOTAL-INTEREST = WS-TOTAL-AMOUNT-PAID - WS-LOAN-PRINCIPAL DISPLAY " Total Interest: $" WS-TOTAL-INTEREST DISPLAY " Total Paid: $" WS-TOTAL-AMOUNT-PAID *> Investment return calculation MOVE 10000.00 TO WS-LOAN-PRINCIPAL MOVE 0.08 TO WS-ANNUAL-INTEREST-RATE MOVE 10 TO WS-LOAN-TERM-YEARS COMPUTE WS-TOTAL-AMOUNT-PAID = WS-LOAN-PRINCIPAL * ((1 + WS-ANNUAL-INTEREST-RATE) ** WS-LOAN-TERM-YEARS) DISPLAY " " DISPLAY " 📈 Investment Growth:" DISPLAY " Initial Investment: $" WS-LOAN-PRINCIPAL DISPLAY " Annual Return: " WS-ANNUAL-INTEREST-RATE DISPLAY " Future Value: $" WS-TOTAL-AMOUNT-PAID COMPUTE WS-TOTAL-INTEREST = WS-TOTAL-AMOUNT-PAID - WS-LOAN-PRINCIPAL DISPLAY " Total Gains: $" WS-TOTAL-INTEREST DISPLAY SPACES. DEMONSTRATE-SCIENTIFIC-CALCULATIONS. DISPLAY "=== SCIENTIFIC CALCULATIONS ===" DISPLAY SPACES DISPLAY "Performing geometric and scientific computations..." *> Circle calculations MOVE 7.5 TO WS-RADIUS COMPUTE WS-CIRCUMFERENCE = 2 * WS-PI * WS-RADIUS COMPUTE WS-AREA = WS-PI * (WS-RADIUS ** 2) COMPUTE WS-VOLUME = (4 / 3) * WS-PI * (WS-RADIUS ** 3) DISPLAY " 🔵 Circle Calculations:" DISPLAY " Radius: " WS-RADIUS " units" DISPLAY " Circumference: " WS-CIRCUMFERENCE " units" DISPLAY " Area: " WS-AREA " sq units" DISPLAY " Sphere Volume: " WS-VOLUME " cu units" *> Temperature conversion MOVE 75.5 TO WS-RADIUS *> Reusing as Fahrenheit COMPUTE WS-CIRCUMFERENCE = (WS-RADIUS - 32) * (5 / 9) *> To Celsius COMPUTE WS-AREA = WS-CIRCUMFERENCE + 273.15 *> To Kelvin DISPLAY " " DISPLAY " 🌡️ Temperature Conversions:" DISPLAY " Fahrenheit: " WS-RADIUS "°F" DISPLAY " Celsius: " WS-CIRCUMFERENCE "°C" DISPLAY " Kelvin: " WS-AREA "K" *> Physics calculation - kinetic energy MOVE 50.0 TO WS-RADIUS *> Mass in kg MOVE 25.5 TO WS-CIRCUMFERENCE *> Velocity in m/s COMPUTE WS-AREA = 0.5 * WS-RADIUS * (WS-CIRCUMFERENCE ** 2) DISPLAY " " DISPLAY " ⚡ Physics Calculation:" DISPLAY " Mass: " WS-RADIUS " kg" DISPLAY " Velocity: " WS-CIRCUMFERENCE " m/s" DISPLAY " Kinetic Energy: " WS-AREA " joules" DISPLAY SPACES. DEMONSTRATE-STATISTICAL-ANALYSIS. DISPLAY "=== STATISTICAL ANALYSIS ===" DISPLAY SPACES DISPLAY "Calculating statistical measures..." *> Sample data points MOVE 85.5 TO WS-VALUE(1) MOVE 92.3 TO WS-VALUE(2) MOVE 78.9 TO WS-VALUE(3) MOVE 94.7 TO WS-VALUE(4) MOVE 88.1 TO WS-VALUE(5) MOVE 91.2 TO WS-VALUE(6) MOVE 87.6 TO WS-VALUE(7) MOVE 89.4 TO WS-VALUE(8) MOVE 93.8 TO WS-VALUE(9) MOVE 86.3 TO WS-VALUE(10) *> Calculate sum and mean MOVE 0 TO WS-SUM PERFORM VARYING WS-LOAN-TERM-YEARS FROM 1 BY 1 UNTIL WS-LOAN-TERM-YEARS > 10 ADD WS-VALUE(WS-LOAN-TERM-YEARS) TO WS-SUM END-PERFORM COMPUTE WS-MEAN = WS-SUM / 10 DISPLAY " 📊 Statistical Analysis:" DISPLAY " Data Points: 10 values" DISPLAY " Sum: " WS-SUM DISPLAY " Mean: " WS-MEAN *> Calculate variance MOVE 0 TO WS-VARIANCE PERFORM VARYING WS-LOAN-TERM-YEARS FROM 1 BY 1 UNTIL WS-LOAN-TERM-YEARS > 10 COMPUTE WS-VARIANCE = WS-VARIANCE + ((WS-VALUE(WS-LOAN-TERM-YEARS) - WS-MEAN) ** 2) END-PERFORM COMPUTE WS-VARIANCE = WS-VARIANCE / 10 *> Calculate standard deviation COMPUTE WS-STANDARD-DEVIATION = WS-VARIANCE ** 0.5 DISPLAY " Variance: " WS-VARIANCE DISPLAY " Standard Deviation: " WS-STANDARD-DEVIATION *> Find min and max MOVE WS-VALUE(1) TO WS-RADIUS WS-CIRCUMFERENCE PERFORM VARYING WS-LOAN-TERM-YEARS FROM 2 BY 1 UNTIL WS-LOAN-TERM-YEARS > 10 IF WS-VALUE(WS-LOAN-TERM-YEARS) < WS-RADIUS MOVE WS-VALUE(WS-LOAN-TERM-YEARS) TO WS-RADIUS END-IF IF WS-VALUE(WS-LOAN-TERM-YEARS) > WS-CIRCUMFERENCE MOVE WS-VALUE(WS-LOAN-TERM-YEARS) TO WS-CIRCUMFERENCE END-IF END-PERFORM DISPLAY " Minimum: " WS-RADIUS DISPLAY " Maximum: " WS-CIRCUMFERENCE COMPUTE WS-AREA = WS-CIRCUMFERENCE - WS-RADIUS DISPLAY " Range: " WS-AREA DISPLAY SPACES. DEMONSTRATE-BUSINESS-METRICS. DISPLAY "=== BUSINESS METRICS ===" DISPLAY SPACES DISPLAY "Calculating key business performance indicators..." *> Sample business data MOVE 1250000.00 TO WS-GROSS-REVENUE MOVE 875000.00 TO WS-TOTAL-EXPENSES *> Calculate profit metrics COMPUTE WS-NET-PROFIT = WS-GROSS-REVENUE - WS-TOTAL-EXPENSES COMPUTE WS-PROFIT-MARGIN = (WS-NET-PROFIT / WS-GROSS-REVENUE) * 100 DISPLAY " 💼 Business Performance:" DISPLAY " Gross Revenue: $" WS-GROSS-REVENUE DISPLAY " Total Expenses: $" WS-TOTAL-EXPENSES DISPLAY " Net Profit: $" WS-NET-PROFIT DISPLAY " Profit Margin: " WS-PROFIT-MARGIN "%" *> ROI calculation MOVE 500000.00 TO WS-LOAN-PRINCIPAL *> Investment COMPUTE WS-ROI-PERCENTAGE = (WS-NET-PROFIT / WS-LOAN-PRINCIPAL) * 100 DISPLAY " Initial Investment: $" WS-LOAN-PRINCIPAL DISPLAY " ROI: " WS-ROI-PERCENTAGE "%" *> Break-even analysis MOVE 75.00 TO WS-RADIUS *> Unit price MOVE 45.00 TO WS-CIRCUMFERENCE *> Variable cost per unit MOVE 180000.00 TO WS-AREA *> Fixed costs COMPUTE WS-VOLUME = WS-AREA / (WS-RADIUS - WS-CIRCUMFERENCE) DISPLAY " " DISPLAY " 📈 Break-Even Analysis:" DISPLAY " Unit Price: $" WS-RADIUS DISPLAY " Variable Cost: $" WS-CIRCUMFERENCE DISPLAY " Fixed Costs: $" WS-AREA DISPLAY " Break-Even Units: " WS-VOLUME DISPLAY SPACES. DEMONSTRATE-CURRENCY-OPERATIONS. DISPLAY "=== CURRENCY OPERATIONS ===" DISPLAY SPACES DISPLAY "Processing international currency conversions..." *> USD to EUR conversion MOVE 5000.00 TO WS-USD-AMOUNT MOVE 0.85 TO WS-EXCHANGE-RATE COMPUTE WS-FOREIGN-AMOUNT = WS-USD-AMOUNT * WS-EXCHANGE-RATE COMPUTE WS-CONVERSION-FEE = WS-FOREIGN-AMOUNT * WS-CONVERSION-FEE-RATE COMPUTE WS-FOREIGN-AMOUNT = WS-FOREIGN-AMOUNT - WS-CONVERSION-FEE DISPLAY " 💱 Currency Conversion (USD to EUR):" DISPLAY " USD Amount: $" WS-USD-AMOUNT DISPLAY " Exchange Rate: " WS-EXCHANGE-RATE DISPLAY " Conversion Fee Rate: " WS-CONVERSION-FEE-RATE DISPLAY " Conversion Fee: €" WS-CONVERSION-FEE DISPLAY " Final EUR Amount: €" WS-FOREIGN-AMOUNT *> GBP to USD conversion MOVE 3500.00 TO WS-FOREIGN-AMOUNT MOVE 1.25 TO WS-EXCHANGE-RATE COMPUTE WS-USD-AMOUNT = WS-FOREIGN-AMOUNT * WS-EXCHANGE-RATE COMPUTE WS-CONVERSION-FEE = WS-USD-AMOUNT * WS-CONVERSION-FEE-RATE COMPUTE WS-USD-AMOUNT = WS-USD-AMOUNT - WS-CONVERSION-FEE DISPLAY " " DISPLAY " 💱 Currency Conversion (GBP to USD):" DISPLAY " GBP Amount: £" WS-FOREIGN-AMOUNT DISPLAY " Exchange Rate: " WS-EXCHANGE-RATE DISPLAY " Conversion Fee: $" WS-CONVERSION-FEE DISPLAY " Final USD Amount: $" WS-USD-AMOUNT DISPLAY SPACES. DEMONSTRATE-TAX-CALCULATIONS. DISPLAY "=== TAX CALCULATIONS ===" DISPLAY SPACES DISPLAY "Computing progressive tax calculations..." *> Sample tax brackets MOVE 0.00 TO WS-BRACKET-THRESHOLD(1) MOVE 0.10 TO WS-BRACKET-RATE(1) MOVE 9950.00 TO WS-BRACKET-THRESHOLD(2) MOVE 0.12 TO WS-BRACKET-RATE(2) MOVE 40525.00 TO WS-BRACKET-THRESHOLD(3) MOVE 0.22 TO WS-BRACKET-RATE(3) MOVE 86375.00 TO WS-BRACKET-THRESHOLD(4) MOVE 0.24 TO WS-BRACKET-RATE(4) MOVE 164925.00 TO WS-BRACKET-THRESHOLD(5) MOVE 0.32 TO WS-BRACKET-RATE(5) *> Calculate tax for $85,000 income MOVE 85000.00 TO WS-TAXABLE-INCOME MOVE 0 TO WS-TOTAL-TAX *> First bracket: $0 - $9,950 at 10% COMPUTE WS-TOTAL-TAX = WS-TOTAL-TAX + (9950 * 0.10) *> Second bracket: $9,951 - $40,525 at 12% COMPUTE WS-TOTAL-TAX = WS-TOTAL-TAX + ((40525 - 9950) * 0.12) *> Third bracket: $40,526 - $85,000 at 22% COMPUTE WS-TOTAL-TAX = WS-TOTAL-TAX + ((WS-TAXABLE-INCOME - 40525) * 0.22) COMPUTE WS-EFFECTIVE-TAX-RATE = (WS-TOTAL-TAX / WS-TAXABLE-INCOME) * 100 DISPLAY " 🏛️ Tax Calculation:" DISPLAY " Taxable Income: $" WS-TAXABLE-INCOME DISPLAY " Total Tax: $" WS-TOTAL-TAX DISPLAY " Effective Tax Rate: " WS-EFFECTIVE-TAX-RATE "%" COMPUTE WS-NET-PROFIT = WS-TAXABLE-INCOME - WS-TOTAL-TAX DISPLAY " After-Tax Income: $" WS-NET-PROFIT DISPLAY SPACES. DEMONSTRATE-PRECISION-CONTROL. DISPLAY "=== PRECISION CONTROL ===" DISPLAY SPACES DISPLAY "Demonstrating NUMBER precision and rounding..." *> High precision calculations MOVE 1.0 TO WS-RADIUS MOVE 3.0 TO WS-CIRCUMFERENCE COMPUTE WS-AREA = WS-RADIUS / WS-CIRCUMFERENCE DISPLAY " 🎯 Precision Demonstration:" DISPLAY " 1/3 with high precision: " WS-AREA *> Rounding examples MOVE 123.456789 TO WS-VOLUME COMPUTE WS-AREA = FUNCTION ROUND(WS-VOLUME, 2) DISPLAY " Original: " WS-VOLUME DISPLAY " Rounded to 2 decimal places: " WS-AREA COMPUTE WS-AREA = FUNCTION ROUND(WS-VOLUME, 0) DISPLAY " Rounded to whole number: " WS-AREA *> Truncation examples COMPUTE WS-AREA = FUNCTION INTEGER(WS-VOLUME) DISPLAY " Truncated: " WS-AREA *> Precision in financial calculations MOVE 999999.999999 TO WS-VOLUME COMPUTE WS-AREA = WS-VOLUME * 1.000001 DISPLAY " Large number precision test: " WS-AREA DISPLAY SPACES DISPLAY "NUMBER data type demonstration summary:" DISPLAY " ✓ Basic arithmetic operations performed" DISPLAY " ✓ Financial calculations completed" DISPLAY " ✓ Scientific computations executed" DISPLAY " ✓ Statistical analysis conducted" DISPLAY " ✓ Business metrics calculated" DISPLAY " ✓ Currency operations processed" DISPLAY " ✓ Tax calculations performed" DISPLAY " ✓ Precision control demonstrated" DISPLAY SPACES.
How do you declare a NUMBER field with 10 digits and 2 decimal places?
Answer: Use NUMBER(10,2) where 10 is the total precision (digits) and 2 is the scale (decimal places). Example: 01 WS-AMOUNT NUMBER(10,2).
What's the difference between precision and scale in NUMBER?
Answer: Precision is the total number of digits that can be stored, while scale is the number of digits after the decimal point. In NUMBER(12,4), precision is 12 and scale is 4.
Why is NUMBER preferred for financial calculations?
Answer: NUMBER provides exact decimal arithmetic without floating-point rounding errors, making it ideal for financial calculations where precision is critical. It maintains accuracy for monetary values and business computations.