Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery,如何处理高数字_Jquery_Numbers - Fatal编程技术网

Jquery,如何处理高数字

Jquery,如何处理高数字,jquery,numbers,Jquery,Numbers,我需要验证一个22个字符长的整数。我需要除以那个数字,得到商和占卜的余数。但是,当我把它发送到模函数时,它返回7.04406000774059e+21 labas = modulo(7044060007740589212932, 97); function modulo (divident, divisor){ alert(divident); } js中有两个用于处理大数字的库: (及) 我想你的意思是划分(不是“神圣的”)和剩余部分(不是“坏的部分”)。 我掷了一些有趣的骰子得到一

我需要验证一个22个字符长的整数。我需要除以那个数字,得到商和占卜的余数。但是,当我把它发送到模函数时,它返回7.04406000774059e+21

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无法处理