formatting number as text

eydeak

VIP Member
Hello List,



I need to take a number and put it in a text field and maintain the number
formatting. (ie 99999 convert to text 99,999.00)



I haven't been able to find a bsfn to help me. Any suggestions?



Thanks




Ellen Deak
Senior Analyst/Programmer
Cooper-Standard Automotive
OneWorld Xe (B7333, Service Pack 17)
AS/400 DB2
 
eydeak,

my suggestion is to create your own. As with you, not being able to find a business function a year ago to do exactly what you are describing, I created my own in NER. It was simple and works like a charm. You need to also create a data structure with one math numeric field as input and one string field as output. Here's the code sniplet:


Listing of ER for Named ER: N55MNTOS


=======================================================================
NAMED ER: Convert Math Numeric To String - Custom
=======================================================================
evt_mnBucketBillion
evt_mnBucketMillion
evt_mnBucketThousand
evt_mnBucketHundred
evt_mnRemainder
evt_cIsNegative
evt_mnDummy
0001 VA evt_mnBucketBillion = 0
0002 VA evt_mnBucketMillion = 0
0003 VA evt_mnBucketThousand = 0
0004 VA evt_mnBucketHundred = 0
0005 VA evt_mnRemainder = 0
0006 VA evt_mnDummy = 0
0007 VA evt_cIsNegative = "0"
0008 VA evt_mnDummy = BF mnAmountField
0009 //
0010 // Check for signed amount
0011 //
0012 If VA evt_mnDummy is less than <Zero>
0013 VA evt_mnDummy = [VA evt_mnDummy]*-1
0014 VA evt_cIsNegative = "1"
0015 End If
0016 //
0017 // O V E R O N E B I L L I O N
0018 //
0019 If VA evt_mnDummy is greater than "999999999.99"
0020 VA evt_mnBucketBillion = floor([VA evt_mnDummy]/1000000000)
0021 VA evt_mnDummy = [VA evt_mnDummy]-([VA evt_mnBucketBillion]*1000000000)
0022 End If
0023 //
0024 // O V E R O N E M I L L I O N
0025 //
0026 If VA evt_mnDummy is greater than "999999.99"
0027 VA evt_mnBucketMillion = floor(([VA evt_mnDummy]/1000000))
0028 VA evt_mnDummy = [VA evt_mnDummy]-([VA evt_mnBucketMillion]*1000000)
0029 End If
0030 //
0031 // O V E R O N E T H O U S A N D
0032 //
0033 If VA evt_mnDummy is greater than "999.99"
0034 VA evt_mnBucketThousand = floor(([VA evt_mnDummy]/1000))
0035 VA evt_mnDummy = [VA evt_mnDummy]-([VA evt_mnBucketThousand]*1000)
0036 End If
0037 //
0038 // L E S S T H A N O N E T H O U S A N D
0039 //
0040 VA evt_mnBucketHundred = floor([VA evt_mnDummy])
0041 VA evt_mnRemainder = ([VA evt_mnDummy]-floor([VA evt_mnDummy]))*100
0042 //
0043 // '.' when amount is zero
0044 //
0045 If VA evt_mnRemainder is equal to "."
0046 VA evt_mnRemainder = 0
0047 End If
0048 //
0049 // Format amount
0050 //
0051 If VA evt_mnBucketBillion is greater than <Zero>
0052 BF szAmountField = concat([VA evt_mnBucketBillion],concat(',',concat(lpad([VA evt_mnBucketMillion],'0',3),concat(',',concat(lpad([VA evt_mnBucketThousand],'0',3),concat(',',concat(lpad([VA evt_mnBucketHundred],'0',3),concat('.',lpad([VA evt_mnRemainder],'0',2)))))))))
0053 Else
0054 If VA evt_mnBucketMillion is greater than <Zero>
0055 BF szAmountField = concat([VA evt_mnBucketMillion],concat(",",concat(lpad([VA evt_mnBucketThousand],'0',3),concat(",",concat(lpad([VA evt_mnBucketHundred],'0',3),concat(".",lpad([VA evt_mnRemainder],'0',2)))))))
0056 Else
0057 If VA evt_mnBucketThousand is greater than <Zero>
0058 BF szAmountField = concat([VA evt_mnBucketThousand],concat(",",concat(lpad([VA evt_mnBucketHundred],'0',3),concat(".",lpad([VA evt_mnRemainder],'0',2)))))
0059 Else
0060 BF szAmountField = concat([VA evt_mnBucketHundred],concat(".",lpad([VA evt_mnRemainder],'0',2)))
0061 End If
0062 End If
0063 End If
0064 If VA evt_cIsNegative is equal to "1"
0065 BF szAmountField = concat('-',[BF szAmountField] )
0066 End If
0067 BF szAmountField = lpad([BF szAmountField],' ',18)

Thursday May 01, 2003 17:18


Hope this help,
 
Back
Top