带 V 和逗号的 COBOL PICTURE
COBOL PICTURE with V and Comma
我正在学习 open COBOL 的一些基础知识,这是我关于 PICTURE 的问题:
999V99 价值 12.4
显示“012.40”
我也期待
99,999V99 VALUE 12.4 产生一些合理的输出,但输出是“00,01240”。
99,999V99 价值 1234.56
还显示“01,23456”而不是我期望的“01,234.56”。
怎么了?从 1234.56 获取“01,234.56”的正确掩码是什么?
正确的掩码是99,999.99
。看看评论中建议的 link Gilbert
Common mask characters
9 - 0 -> 9
Z - 0 -> 9 + space for leading zero's
V - Assumed decimal place not actually represented
. - actual decimal place
, - comma
So
Cobol definition Display value
---------------- -------------
99,999V99 VALUE 1234.56 01,23456
99,999.99 VALUE 1234.56 01,234.56
ZZ,ZZ9.99 VALUE 1234.56 1,234.56
--,--9.99 VALUE 1234.56 1,234.56
--,--9.99 VALUE -1234.56 -1,234.56
++,++9.99 VALUE 1234.56 +1,234.56
一旦您使用像 Z , . - + /
这样的字符,该字段就是 edited numeric 字段而不是 numeric 字段。某些编译器可能允许您在数值计算中使用 edited numeric,而其他编译器则不允许。 已编辑数字 用于显示值。
数字字段
数值字段定义如下,可用于数值计算
03 num-1 pic s9(5)v99.
03 num-2 pic s9(5)v99 comp.
03 num-3 pic s9(5)v99 comp-3.
我正在学习 open COBOL 的一些基础知识,这是我关于 PICTURE 的问题:
999V99 价值 12.4 显示“012.40”
我也期待 99,999V99 VALUE 12.4 产生一些合理的输出,但输出是“00,01240”。
99,999V99 价值 1234.56 还显示“01,23456”而不是我期望的“01,234.56”。
怎么了?从 1234.56 获取“01,234.56”的正确掩码是什么?
正确的掩码是99,999.99
。看看评论中建议的 link Gilbert
Common mask characters
9 - 0 -> 9
Z - 0 -> 9 + space for leading zero's
V - Assumed decimal place not actually represented
. - actual decimal place
, - comma
So
Cobol definition Display value
---------------- -------------
99,999V99 VALUE 1234.56 01,23456
99,999.99 VALUE 1234.56 01,234.56
ZZ,ZZ9.99 VALUE 1234.56 1,234.56
--,--9.99 VALUE 1234.56 1,234.56
--,--9.99 VALUE -1234.56 -1,234.56
++,++9.99 VALUE 1234.56 +1,234.56
一旦您使用像 Z , . - + /
这样的字符,该字段就是 edited numeric 字段而不是 numeric 字段。某些编译器可能允许您在数值计算中使用 edited numeric,而其他编译器则不允许。 已编辑数字 用于显示值。
数字字段
数值字段定义如下,可用于数值计算
03 num-1 pic s9(5)v99.
03 num-2 pic s9(5)v99 comp.
03 num-3 pic s9(5)v99 comp-3.