計算方法と根拠

計算の手順

チェックデジットを除いた数字の右端を 1 番目として、奇数番目の桁の合計を 3 倍し、偶数番目の桁の合計を加えます。その合計の下 1 桁を 10 から引いた数がチェックデジットです。下 1 桁が 0 のときは 0 になります。この方式は GS1 JAPAN が示すモジュラス 10・ウェイト 3 と 1 の方式で、13 桁・8 桁・14 桁の JAN/GTIN に共通です。

計算例

GS1 JAPAN のページの例の 456995111617(事業者コード 456995111+アイテムコード 617)では、右から奇数番目の合計が 33、偶数番目の合計が 22 で、33×3+22=121、10-1=9 となり、13 桁のコードは 4569951116179 です。

桁数と先頭の 0

重みは右端から数えるため、先頭に 0 を足しても省いても結果は変わりません。8 桁の JAN は 7 桁、標準の 13 桁は 12 桁、14 桁は 13 桁を入れてください。すでにチェックデジットが付いたコードを入れると、別の値になります。

使っている式

計算式
名前やっていること式
右から奇数番目の桁の合計チェックデジットを除いた数字の、右端から数えて 1・3・5…番目の桁を足します(この合計に 3 を掛けます)。odd = (floor(code / 1) % 10) + (floor(code / 100) % 10) + (floor(code / 10000) % 10) + (floor(code / 1000000) % 10) + (floor(code / 100000000) % 10) + (floor(code / 10000000000) % 10) + (floor(code / 1000000000000) % 10)
右から偶数番目の桁の合計右端から数えて 2・4・6…番目の桁を足します(そのまま加えます)。even = (floor(code / 10) % 10) + (floor(code / 1000) % 10) + (floor(code / 100000) % 10) + (floor(code / 10000000) % 10) + (floor(code / 1000000000) % 10) + (floor(code / 100000000000) % 10)
重みをつけた合計奇数番目の桁の合計を 3 倍して、偶数番目の桁の合計を加えます。sum = odd * 3 + even
チェックデジット(末尾に付く 1 桁)(結果)重みをつけた合計の下 1 桁を 10 から引いた数です。下 1 桁が 0 のときは 0 になります。(10 - sum % 10) % 10
重みをつけた合計(結果)奇数番目の桁の合計×3+偶数番目の桁の合計です。sum
右から奇数番目の桁の合計(結果)3 を掛ける前の合計です。odd
右から偶数番目の桁の合計(結果)そのまま加える桁の合計です。even

式の記法: + - * / ^(べき乗)、かっこ、min / max / round / ceil / floor / pow / abs / sqrt、if(条件, 真のとき, 偽のとき)。round(x, 桁) は四捨五入、ceil は切り上げ、floor は切り捨てです。

設定値(定数)と出典

この計算では、税率や料金表などの外部の設定値は使っていません。数学的な定義の式だけで計算しています。

入力できる範囲

入力項目
項目範囲初期値
チェックデジットを除いた数字(標準 13 桁なら 12 桁、短縮 8 桁なら 7 桁、14 桁なら 13 桁)0〜9,999,999,999,999456,995,111,617

結果は、同じ条件なら本サイトのどのページでも同じ数字になります(ページの数字も、計算ツールも同じ計算の仕組みで出しています)。

ご利用にあたって

  • チェックデジットの計算結果は、入力した数字からの計算にすぎません。コード自体の取得・登録(GS1事業者コードの貸与など)や、商品への表示の可否は、GS1 JAPAN などにご確認ください。
  • 重み(3 と 1)による計算は GS1 の方式です。社内コードなど別の方式のチェックデジットには使えません。
  • 計算結果は各事業者の責任でご利用ください。