是否可以在 JavaScript 中实现没有舍入问题的任意精度算术
Is it possible to achieve arbitrary-precision arithmetic with no rounding issues in JavaScript?
我已经尝试了big.js,bignumber.js和decimal.js;它们在某种程度上都工作得很好,但是当我需要使用足够多的"奇数"数字进行任意精度计算时(我目前的测试用例是31435517643980 * (1 / 31435517643980) === 1
)。我对任何允许我处理此类表达式的解决方案持开放态度,包括对外部 API 的调用。我目前正在查看 Wolfram|Alpha 的 API,但 2000 次调用/月的限制是我想避免的限制,因为我的应用程序将进行相当多的调用。
如果这是此问题的错误 SE 站点,请告诉我和/或移动它。
可能最常见的方法是简单地将两个数字乘以相同的乘数,使它们没有小数,然后进行操作,然后再次除法。这是一个粗略的实现:
function getDigits(n){
return n.toString().substring(n.toString().indexOf('.')+1).length;
}
function xNums(n1,n2){
var highRes=(n1*Math.pow(10,getDigits(n1))*(n2*Math.pow(10,getDigits(n2))));
return highRes/Math.pow(10,getDigits(n1))/Math.pow(10,getDigits(n2));
}
然后,运行xNums(31435517643980,(1 / 31435517643980))===1
。在 Chrome 中为我工作
相关文章:
- 浮点0.2+0.1舍入误差
- 谷歌材料图表:停止工具提示舍入
- jQuery - 带有一些数字的表格计算出现奇怪的舍入错误
- 有人可以详细解释这个 JavaScript 十进制舍入函数吗?
- 求和值时出现Javascript舍入问题
- 在追加文本中舍入数字输出
- Infrastics网络货币编辑舍入问题
- 柔性滑块问题淡入淡出效果
- 是否可以在 JavaScript 中实现没有舍入问题的任意精度算术
- JavaScript 中的舍入问题
- Javascript中的舍入问题
- 在 JavaScript 中向上舍入数字有问题
- JavaScript,数字舍入问题
- 修复CSS流体网格中的子像素舍入问题
- jQuery问题中的舍入数字
- 解析浮点数有舍入限制?我怎样才能解决这个问题
- 淘汰赛中的十进制值舍入问题
- Javascript:需要解决自动舍入的问题
- Javascript浮点问题-舍入问题
- 移动webkit浏览器在JS中有舍入问题吗?