如何在JavaScript中精确地除以整数?
我想要一个JavaScript函数,将一个数字数组减少到这些数字的平均值。我的函数代码如下所示:如何在JavaScript中精确地除以整数?,javascript,division,Javascript,Division,我想要一个JavaScript函数,将一个数字数组减少到这些数字的平均值。我的函数代码如下所示: Array.prototype.avg = function(ignoreZero = false) { return (this.reduce(function(a, b) { return a + b; }) / (this.length)); }; 但我知道,由于JavaScript处理数字的方式,这可能会导致带小数点的有理数的值不准确,因此平均值可能不准确
Array.prototype.avg = function(ignoreZero = false) {
return (this.reduce(function(a, b) {
return a + b;
}) / (this.length));
};
但我知道,由于JavaScript处理数字的方式,这可能会导致带小数点的有理数的值不准确,因此平均值可能不准确
我不太清楚这个问题存在的原因,我不太了解浮点运算,但我想知道是否有一个简单的解决方案
似乎大多数人只是建议将小数部分与有理数相乘,但因为我不知道一个有理数可能有多少小数,所以这个解决方案不起作用。js社区对javascript的每个固有特性都有一个解决方案,所以。。。有一个图书馆 特别是大数字
给定的数字[2,3,5]你期望的平均值是多少?除非你决定用wolfram alpha或数学计算器之类的抽象方式处理计算,否则你不可能在有限的内存和有限的时间内获得无限的精度。您到底想实现什么?您可以尝试将十进制数乘以一个整数,比如说0.001乘以*1000,然后用它进行计算。@OrryVandermeulen非浮点值在javascript中也不精确。谢谢。我希望精确到小数点后2位该库仍然为我提供0.1+0.2=0.00000004您使用的是大数字吗?否-我尝试了此库,但它仍然有效:或者您使用分数.js-一个有理数库,也被math.js使用: