24位长整数的模数?

Hed*_*dge 0 javascript node.js

我需要计算24位长整数(IBAN校验和)的模数,但JS计算错误.

例如:700901001234567890131400%97 = 90

但在JS(V8)中它是38.

如何计算JS中的模数

Rob*_*bba 7

我认为您链接的文档已经说明了您应该做的事情:

如果使用的应用软件不能提供处理这种大小的整数的能力,则可以以分段方式执行模运算.

分段计算D mod 97可以以多种方式完成.一种方法如下:

  1. 从D的最左边数字开始,使用前9位数构建一个数字,并将其称为N. [注3]
  2. 计算N mod 97.
  3. 通过将上述结果(步骤2)与D的下一个7位数连接起来构造一个新的9位数N.如果D中剩余的数字少于7位但至少有一位,则构造一个新的N,其数小于9数字,从上面的结果(步骤2)开始,接着是D的剩余数字
  4. 重复步骤2-3,直到处理完D的所有数字.步骤2中的最终计算结果为D mod 97 = N mod 97.