V
в предложении вашего изображения - это подразумеваемая десятичная точка. Я думаю, что вам нужно поле с PIC -999.99
, где .
является десятичной точкой явного , для его условия изображения.
Вы можете думать об этом как о языке COBOL, делающем различие между как определяется переменная и как она отображается. Вроде как строка формата в printf
просто указывает, как показать переменную, а не как она определена. Хотя в обоих случаях определение и способ его отображения должны в определенной степени совпадать.
Выбор правильного предложения изображения для поля числового значения c важен; если вы выполняете вычисления, это может оказать существенное влияние на производительность.
Поэтому обычно имеет поле с определением, например ...
PIC 9(4)V99 COMP-3
... и соответствующий ему поле для целей вывода, таких как ...
PIC ZZZ9.99
... так, чтобы вычисления могли выполняться на первом, а при отображении поля необходимо использовать оператор MOVE
для копирования содержимого с первого на второе.