消える「16桁目」の怪――カード番号を“改ざん”する仕様上の制限とは(第35回):日経パソコンオンライン

クレジットカード番号をExcelに入力すると最後の桁が0になっちゃうというExcelの怪

実際は、16桁までExcelがハンドリングできない制限のためだそうです。

クレジットカードの番号は、一般に「1234-1234-1234-1234」のようなハイフンで区切った16桁の数字から成る。インターネットでカード決済をするときは、ハイフンを除いた16桁の数字だけを入力するケースも多い。
この16桁の番号をエクセルに入力しようとして困った経験はないだろうか。ハイフンを省略して「1234123412341234」のように番号を入れ、「Enter」キーを押すと、なんと16桁目の「4」が「0」に変わってしまうのだ。

16桁目が「0」に変わってしまうのは、エクセルの不具合(バグ)ではない。エクセルには、「数値の16桁目以降を扱えない」という仕様上の制限があるためだ。整数の場合は「100兆」の位まで、小数の場合は「最初に登場する0以外の数字から15桁目」までしか、正確に入力や計算ができない。16桁目以降の数字は、すべて「0」に丸められてしまう。

screenshot