簡體   English   中英

Javascript驗證數組元素的總和凈為零

[英]Javascript Validate Sum of array elements net to zero

我需要將數組net的元素總和驗證為零。 該數組可以包含正值或負值。 數組元素是1164.44,-2919.42,2500.59,-5197.15,4451.54我的代碼沒有使用toFixed是

    var v_total=0;
   var v;
   var varray  = document.getElementsByName('f02');
   for (var i = 0; i < varray.length; i++)
   {

      v = (isNaN(parseFloat(varray[i].value)))?0:varray[i].value;
     v_total = parseFloat(cv_total) + parseFloat(v);

   }

    v_total = (isNaN(cv_total))?0:cv_total;

得出的總和為9.094947017729282e-13如果我使用calc將其相加,則它的凈值為零。搜索了論壇並了解這是浮點數的行為。 盡管使用了toFixed,但我無法獲得總和零。 另外,小數點后的位數可能會有所不同,並且並不總是2。

謝謝

這工作正常,似乎是什么問題?

var n=[1164.44,-2919.42,2500.59,-5197.15,4451.54];
s=n.reduce(function(x,y) {
    return parseFloat((x+y).toFixed(2));
});
console.log(s);

JSFiddle在這里: http : //jsfiddle.net/91g4qb0z/

您可以使用reduce()和toPrecision():

  var arr =[1164.44,-2919.4204,2500.5904,-5197.151,4451.541]; var result = arr.reduce(function(a, b){ return +a.toPrecision(15) + +b.toPrecision(15) }); alert(result); 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM