如何将数字格式化为.net中的S9(5)V99 ascii

use*_*973 5 .net cobol number-formatting

我一直在寻找s9(5)v99,但获得了不同的信息,并不是很清楚.有人可以显示如何或转换公式.谢谢

Nea*_*alB 16

您在此处向我们展示PICTURE的是COBOL数据声明的子句部分.

COBOL数据声明有点奇怪,需要一些时间来习惯.这是一个关于COBOL数据声明的入门教程的链接.这应该让你开始.

您在问题中给出的PICture子句定义了一个具有以下特征的数字项:

  • S - 领先的标志
  • 9(5) - 5位小数
  • V - 隐含的小数点
  • 99 - 隐含小数点后2位数

基本上,您告诉COBOL编译器定义一个能够保存值-99999.99到+99999.99的数字变量.编译器究竟如何满足此请求取决于具体USAGE条款.但是,对于包含固定小数位的数字项,"正常"USAGE是PACKED-DECIMALCOMP-3(这些只是不同的名称,意思相同).此链接 提供有关压缩十进制数据的存储表示的一些介绍性信息.

打包的十进制数据对于进行数字计算非常有用,其中小数点的数量必须保持固定.

将压缩十进制数据写入报表或终端不能很好地工作.您必须先将其转换为有DISPLAY能力的格式.这涉及MOVE将压缩十进制值与具有USAGE DISPLAY属性的另一个变量相关联.假设您的压缩十进制变量被调用 PACKED-DECIMAL-NBR并保持值-2345.01.您可以定义一个显示变量来将其保存为:

01    DISPLAY-NBR     PIC +++,++9.99.
Run Code Online (Sandbox Code Playgroud)

然后,当写入/显示PACKED-DECIMAL-NBR您包含的值时,将执行以下操作:

MOVE PACKED-DECIMAL-NBR TO DISPLAY-NBR
DISPLAY DISPLAY-NBR
Run Code Online (Sandbox Code Playgroud)

MOVE转换填充十进制数的字符表示,你可以在报告或在终端上显示.-2,345.01显示该值.


Joh*_*ers 0

PIC S9(5)v99不是数字格式。它描述了数据的存储方式及其含义。例如,存储为“-0010000”的数字表示-100.00。

您到底想实现什么目标?decimal您是否正在尝试向 COBOL 程序发送-100.00?


PIC -99,999.00 一种数字格式。它指定如果数字为负数,则使用前导减号,使用小数点前五位数字,在千位之间使用逗号,小数点,然后正好两位数。存储在字段中的数字PIC S9(5)V99可以合理地移动到PIC -99,999.00字段中。