Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/436.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在JavaScript中精确地除以整数?_Javascript_Division - Fatal编程技术网

如何在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处理数字的方式,这可能会导致带小数点的有理数的值不准确,因此平均值可能不准确

我想要一个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使用: