2
A
回答
2
2
您使用的编号对于JavaScript来说太大了。 int的最大大小是2^53 - 小于7^35。
0
需要更高精度的唯一值是中间结果。因此,如果您的算法不需要有问题的中间结果,则无需更高精度的变量就可以避免该问题。
下面的公式可用于此: (ab)%c =(a%c)(b%c)%c
这意味着Math.pow(7,35)%71 =((Math.pow (7,17)%71)*(Math.pow(7,18)%71))%71.
现在中间结果较小,但可能仍然太大。所以我们需要进一步分解并将模块运算符应用于较小的中间结果。
所以,你可以做这样的事情: Math.pow((Math.pow(7,7)%71),5)%71
但你可能需要为整数为此至极的变量(否则,你可以通过对结果进行硬编码来避免这个问题)。 因此,您需要了解您可以预期的值的范围,并定义一个算法,将功率计算分解为若干块,当输入处于预期范围内时,结果总是足够小。
无论您选择如何计算,使用更高精度的变量(使用专门的库)或specilized算法进行计算,您都应始终声明输入以确保计算仅在您确定时才返回值可以提供正确的价值。否则,对于任何不了解其有效范围的人来说,您的实施变得不可靠。否则,返回一个异常消息,该消息明确指出哪些输入或输入组合是问题以及原因。
相关问题
- 1. 模块化算法计算错误
- 2. 计算错误
- 3. Objective-C中的Modulo运算符返回错误结果
- 4. Modulo运算符的替代
- 5. Javascript计算错误
- 6. JSTL计算错误
- 7. 日计算错误(?)PHP
- 8. 浮点错误计算
- 9. 计算百分比错误
- 10. moment.js时间计算错误
- 11. 计算显示NaN错误
- 12. 简单的计算错误
- 13. 计算错误的值
- 14. 子查询计算错误?
- 15. jQuery自动计算错误
- 16. 相机extrinsics计算错误
- 17. BodyMassIndex计算器错误(NaN)
- 18. VB.Net计算器错误值
- 19. 爪哇 - 计算错误
- 20. 税计算错误 - WooCommerce
- 21. Mysql错误的计算
- 22. 计算错误率R
- 23. 时差计算错误
- 24. Tkinter计算器错误
- 25. WooCommerce - 税额计算错误?
- 26. Schematron的计算错误
- 27. #计算字段错误
- 28. python epsilon错误的计算
- 29. Netlab - 如何计算错误?
- 30. NumPy的是计算错误
你超出了JavaScript数字的准确性。 – Pointy
有没有解决问题的方法? –
也许你可以四处寻找无限精度的定点库。 – Pointy