When you say that the field is defined as 17 s 2, are you talking about the program or your print file? If you are not seeing the negative sign when it prints, what edit code are you using in your print file?
I put together the following little down and dirty program.
d neg_number_1 s 17s 2 inz(0)
neg_number_1 = -14.00;
When I run it in debug, I get:
NEG_NUMBER_1 = -000000000000014.00.
I’m not sure why you are getting ‘0000000000000140}’ unless this is the value of a character field. I don’t understand why you think you need to move the field to a character field to get it back into a decimal format. Can you post some of your code, especially your D specs?