Jquery,如何处理高数字
我需要验证一个22个字符长的整数。我需要除以那个数字,得到商和占卜的余数。但是,当我把它发送到模函数时,它返回7.04406000774059e+21Jquery,如何处理高数字,jquery,numbers,Jquery,Numbers,我需要验证一个22个字符长的整数。我需要除以那个数字,得到商和占卜的余数。但是,当我把它发送到模函数时,它返回7.04406000774059e+21 labas = modulo(7044060007740589212932, 97); function modulo (divident, divisor){ alert(divident); } js中有两个用于处理大数字的库: (及) 我想你的意思是划分(不是“神圣的”)和剩余部分(不是“坏的部分”)。 我掷了一些有趣的骰子得到一
labas = modulo(7044060007740589212932, 97);
function modulo (divident, divisor){
alert(divident);
}
js中有两个用于处理大数字的库:
- (及)
- 我想你的意思是划分(不是“神圣的”)和剩余部分(不是“坏的部分”)。
我掷了一些有趣的骰子得到一个随机数(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中处理数字时,您必须记住,只有前十五或十六位是好的。如果数字的位数更多,结果通常不准确。
您的示例使用以下数字:
704406000740589212932
JavaScript无法准确处理这个数字。它所能做的最好的事情就是704406000740589735936
,这太高了。但是您不想要7044060007740589735936
,您想要7044060007740589212932
这里有一个解决方法:
将您的号码保留为字符串,而不是数字。
“704406000740589212932”
然后把字符串分成两部分,中间部分。
“70440600077”
和“40589212932”
现在有两个字符串,每个字符串包含11位数字。
然后这样做:
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
好了。这是一个很大的数字,javascript无法处理