首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Jquery,如何处理高数字

Jquery,如何处理高数字
EN

Stack Overflow用户
提问于 2013-03-07 11:12:20
回答 2查看 1.8K关注 0票数 0

我需要验证一些整数,这是22个字符长。我需要除以这个数字,得到商以及占卜的其余部分。但是,当我将它发送到模块化函数时,它会返回7.04406000774059e+21

代码语言:javascript
复制
labas = modulo(7044060007740589212932, 97);
function modulo (divident, divisor){
alert(divident);
}
EN

回答 2

Stack Overflow用户

发布于 2013-03-07 11:28:37

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

票数 1
EN

Stack Overflow用户

发布于 2016-12-12 03:29:38

我认为你指的是除法(不是“神圣”)和余数(不是“坏部分”)。

我掷了一些有趣的骰子,得到一个随机数(8233),我将用它作为一些例子。

*当您将8233除以8时,其余的为1. 8233 = (8 * 1029) + 1

*当您将8233除以9时,其余的为7。

*当您将8233除以10时,其余的为3。8233 = (10 * 823) + 3

*当您将8233除以11时,其余的为5。

回答你的问题:

在处理JavaScript中的数字时,您必须记住,只有前15位或16位才是好的。如果数字有更多的数字,结果通常是不准确的。

您的示例使用了这个数字:7044060007740589212932 JavaScript无法准确处理该数字。它能做的最好的就是7044060007740589735936,它的523004太高了。但你不想要7044060007740589735936,你想要7044060007740589212932

以下是一个解决办法:

把你的号码保持为字符串,而不是数字。

"7044060007740589212932"

然后把绳子分成两部分,中间。

"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确实是。

代码语言:javascript
复制
72619175300000000000 * 97 =  7044060004100000000000
         37531847556 * 97 =           3640589212932
====================         ======================
72619175337531847556 * 97 =  7044060007740589212932

然后就到了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15269653

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档