我有一个ascii文件,它是来自基于cobol的系统的数据转储.
文档中有一个字段PIC S9(3)V9(7)..
以下是十六进制(和ascii)中的字段的两个示例以及它们表示的结果数字(取自另一个来源).
Hex Reported value
30 32 38 36 38 35 38 34 35 46 28.687321
ascii : 028685845F
30 39 38 34 35 36 31 33 38 43 -98.480381
ascii : 098456138C
Run Code Online (Sandbox Code Playgroud)
我正在使用ruby,即使添加了Implied Decimal,我似乎也得不到数字.我正在尝试解析IBM Cobol Docs但我会很感激帮助.
给定一个隐含的十进制Cobol字段"PIC S9(3)V9(7).",如何使用ruby将其转换为带符号的浮点数?
假设数据字节已通过哑 EBCDIC 到 ASCII 转换器运行,这两个值是 +28.6858456 和 +98.4561383。这意味着生成的“报告值”列要么已损坏,要么使用不同的字节作为其源。
看起来报告的值可能已经通过低精度浮点转换运行,但这仍然不能解释第二个值上的错误符号。