計算方法と根拠
計算の手順
チェックデジットを除いた数字の右端を 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,999 | 456,995,111,617 |
結果は、同じ条件なら本サイトのどのページでも同じ数字になります(ページの数字も、計算ツールも同じ計算の仕組みで出しています)。
ご利用にあたって
- チェックデジットの計算結果は、入力した数字からの計算にすぎません。コード自体の取得・登録(GS1事業者コードの貸与など)や、商品への表示の可否は、GS1 JAPAN などにご確認ください。
- 重み(3 と 1)による計算は GS1 の方式です。社内コードなど別の方式のチェックデジットには使えません。
- 計算結果は各事業者の責任でご利用ください。