函数计算错误
Function miscalculation
我有一个函数,它只是一个和和一个乘积。对于某些值为他人工作没有意义不会得到正确的结果。
Codia function (r, c) {
return ((r + c) * (r + c + 1));
}
alert(Codia(1908229752,0));
函数得到的结果:3641340788326211000
我计算的结果:3641340788326211256
你能告诉我哪里错了吗。
JavaScript的设计并不是为了精确计算。一旦您有浮点和双精度或大于Number.MAX_SAFE_INTEGER
(即9007199254740991)的数字,数字将开始失去准确性。以下是您的预期答案和最大安全整数的比较:
3,641,340,788,326,211,256 EXPECTED ANSWER
9,007,199,254,740,991 MAX_SAFE_INTEGER
要解决这个问题,可以使用一个设计用于对大数字进行算术运算的库,也可以自己设计一个新算法。
下面是一个使用BigNumber.js的示例,它返回3641340788326211256的正确答案:http://jsfiddle.net/DerekL/jj47touj/
相关文章:
- 与域在同一台计算机上运行的NODEJS服务器的CORS错误
- 猫头鹰旋转木马宽度计算错误
- 百分比计算错误
- 浏览器错误的javascript浮点计算
- jQuery - 带有一些数字的表格计算出现奇怪的舍入错误
- JavaScript 运行时错误仅在本地计算机上
- 我的代码中有什么错误?计算最多 n 的素数
- 计算当天和另一个日期之间的差额时出现错误差异
- 在带有时间戳的日期之间计算时出现 NaN JavaScript 错误
- Javascript/Html 未捕获的引用错误:赋值中的左侧无效;未捕获的引用错误:未定义计算
- Javascript:错误的日期计算
- 为什么使用CryptoJS的哈希计算会在Angular中导致$rootScope:infdig错误
- 谷歌浏览器错误地计算了元素的高度
- JavaScript 在两个输入中计算错误的百分比
- 未捕获的引用错误: 未定义计算总计
- JS脚本计算金额的总和计算错误
- 如何在 JavaScript 对象中计算父级(获取未定义错误)
- 在不同计算机上执行时未捕获的引用错误
- 计算两个日期之间的差异会导致错误的计算
- 错误 404,在我的计算机上找不到脚本