sysLib.verifyChkDigitMod10

システム関数 sysLib.verifyChkDigitMod10 は、 一連の整数で始まる文字項目のモジュラス 10 チェック・ディジットを検証します。


sysLib.verifyChkDigitMod10 の構文図
input
一連の整数で始まる文字項目。この項目には、 チェック・ディジット用に追加の 1 桁があり、位置は他の整数の右隣になります。
checkLength
input 項目から使用する文字の数を含む項目。 チェック・ディジットに使用される桁も含みます。この項目は、4 桁の SMALLINT 型または BIN 型で、小数点以下の桁はありません。
result
次の 2 つの値のいずれかを受け取る項目です。
  • 計算されたチェック・ディジットが input の値と一致する場合は、0
  • 計算されたチェック・ディジットがその値と一致しない場合は、1

この項目は、4 桁の SMALLINT 型または BIN 型で、小数点以下の桁はありません。

sysLib.verifyChkDigitMod10 は、関数呼び出しの文で使用できます。 つまり、テキスト書式で項目バリデーターとして使用できます。

次の例では、myInput は CHAR 型の項目であり、 値は 1734284 です。myLength は SMALLINT 型の項目であり、 値は 7 です。myResult は SMALLINT 型の項目です。
  sysLib.verifyChkDigitMod10 (myInput, myLength, myResult);

モジュラス 10 チェック・ディジットを導き出すためにアルゴリズムが使用され、すべての場合に、 チェック・ディジット位置にある数は考慮されません。ただし、アルゴリズムが完了したときに、 計算値がチェック・ディジット位置にある数と比較されます。

アルゴリズムについて、例の値を使用して説明します。
  1. 入力数の最小桁に 2 を乗算し、右から左の順で 1 桁おきに 2 を乗算します。
      8 x 2 = 16
      4 x 2 = 8
      7 x 2 = 14
  2. 2 を乗算していない入力数字 (132) に、生成された数字 (16814) を加算します。
      1 + 6 + 8 + 1 + 4 + 1 + 3 + 2 = 26   
  3. チェック・ディジットを算出するには、0 で終わる次に大きい数値から合計を減算します。
      30 - 26 = 4

    減算の結果が 10 ならば、チェック・ディジットは 0 です。

この例では、計算されたチェック・ディジットがチェック・ディジット位置と一致し、myResult の値は 0 です。

ご利用条件 | フィードバック
(C) Copyright IBM Corporation 2000, 2005. All Rights Reserved.(C) Copyright IBM Japan 2005.