The old-fashioned brute force method works, yes ... Will you create a new character temporary for numeric fields with different lengths to avoid getting results of "12 -"? Wouldn't you rather see "-12" than "12-"? How will you handle numbers with decimal positions? The "good old-fashioned" technique for that takes a couple of pages of code. By the way, make sure you use the (P) extender on the MOVE(L)s. Otherwise, if you have a negative value (say 27-) followed by a positive value (say 13), the result for 13 will be "213" rather than " 13". Katy, I'd reconsider using several lines of code vs a single line with %CHAR or %EDITC. Besides the shorter code, the builtin functions will adjust themselves automatically to changes in the number of digits in your number; your code will require manual adjustment. * With %EDITC, you choose the formatting based on the edit code * If you really want the sign on the right, use edit code 'L' C EVAL string = %EDITC(num : 'P') * With %CHAR, you get "naturally" formatted numbers ("-12", "7.6800" etc) C EVAL string = %CHAR(num) Barbara Morris