未梱包されたパックされた小数点以下のComp-3データをダブルに変換します

StackOverflow https://stackoverflow.com/questions/796818

  •  18-09-2019
  •  | 
  •  

質問

Comp-3データから固定幅の文字列に開梱されている固定幅テキストファイルがあります。

次のフィールドを解釈する方法を知る必要があります。

FIELD-NAME-1 PIC S9(15)V9(3) COMP-3.
FIELD-NAME-2 PIC S9(3)V9(8) COMP-3.
FIELD-NAME-3 PIC S9(3)V9(6) COMP-3.

これらは私のフラットファイルに次のように表示されます。

FIELD-NAME-1 0123456789123456780
FIELD-NAME-2 01234567890
FIELD-NAME-3 012345670

上記が表す数値を知る必要があります。

これは正しいです:

FIELD-NAME-1 123456789123456.780  --> The first 0 means +ve?
FIELD-NAME-2 012.34567890
FIELD-NAME-3 012.345670

助けてくれてありがとう。ハム

役に立ちましたか?

解決

S9(15)v9(3)は、保存するには19のナイブル(実際には偶数のナイブルを作成する必要があるため、実際には20)を必要とします。

  • サイン用。
  • 整数ビットの場合は15。
  • 3非整数ビットの場合(Vは暗黙の小数であり、実際の小数ではありません)。

サインは通常、最後にaとして表示されます C またはa D Nybbleなので、この質問に対する答えは、開梱が何をしたかに完全に依存します。

あなたの最初の例は実際に適切な数字の数字を持っています それなし そのため、私はあなたの声明の1つがサインを表しているというあなたの声明に関心があります。それか、「9」を中断しました。他の2つの例には、記号と数値の両方に十分な数字があります。

最善の策は、そこにマイナス数(および1のような他のテストデータ)を入手して、それが生成するものを見ることができるかどうかを確認してください。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top