gpt4 book ai didi

ruby - 在 ruby​​ 中转换带符号的 cobol 数

转载 作者:数据小太阳 更新时间:2023-10-29 07:19:56 25 4
gpt4 key购买 nike

我有一个 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

我正在使用 ruby​​,即使在添加隐含小数之后,我似乎得到的数字也不正确。我正在尝试解析 IBM Cobol Docs,但非常感谢您的帮助。

给定“PIC S9(3)V9(7).”的隐含十进制 Cobol 字段,我如何使用 ruby​​ 将其转换为带符号的 float ?

最佳答案

假设数据字节已经通过一个哑巴 EBCDIC 到 ASCII 转换器运行,这两个值是 +28.6858456 和 +98.4561383。这意味着任何生成的“报告值”列要么被破坏,要么使用不同的字节作为其来源。

看起来报告的值可能已通过低精度浮点转换运行,但这仍然不能解释第二个错误符号。

关于ruby - 在 ruby​​ 中转换带符号的 cobol 数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13449683/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com