Jquery,如何使用高数字

我需要validation一个22个字符长的整数。 我需要除去这个数字并获得商数和余数。 但是,当我将它发送到模数函数时,它返回7.04406000774059e + 21

labas = modulo(7044060007740589212932, 97); function modulo (divident, divisor){ alert(divident); } 

在js中有几个用于处理大数字的库:

  • biginteger (和描述 )
  • bignumber
  • jsbn
  • BIGNUM

我认为你的意思是 (不是“神”)和余数 (不是“坏部分”)。
我掷了一些有趣的骰子得到一个随机数(8233),我将用它作为一些例子。
*当您将8233除以8时,余数为1. 8233 = (8 * 1029) + 1
*当您将8233除以9时,余数为7. 8233 = (9 * 914) + 7
*当您将8233除以10时,余数为3. 8233 = (10 * 823) + 3
*当您将8233除以11时,余数为5. 8233 = (11 * 748) + 5

回答你的问题:
在处理JavaScript中的数字时,您必须记住只有前十五或十六位数字是好的。 如果数字有更多数字,结果通常不准确。
您的示例使用此数字: 7044060007740589212932 JavaScript无法准确处理该数字。 它能做的最好的是7044060007740589735936 ,这个523004太高了523004 。 但是你不想要7044060007740589735936 ,你想要7044060007740589212932
这是一个解决方法:
将您的号码保留为字符串 ,而不是数字。
"7044060007740589212932"
然后将琴弦分成两部分,就在中间。
"70440600077""40589212932"
现在你有两个字符串,每个字符串包含十一个数字。
然后这样做:
parseInt("70440600077", 10)您找到号码70440600077
(70440600077 % 97)获得数字36
请注意(97 * 726191753) + 36 = 70440600077
然后拿36并执行此操作:
(36 + "40589212932")获取字符串"3640589212932"
(一个数字加一个字符串可以进行字符串连接。) parseInt("3640589212932", 10)可以获得数字3640589212932 (3640589212932 % 97)获取数字0 ,这是您的最终结果。 请注意97 * 37531847556 = 3640589212932

 72619175300000000000 * 97 = 7044060004100000000000 37531847556 * 97 = 3640589212932 ==================== ====================== 72619175337531847556 * 97 = 7044060007740589212932 

你去吧