2016-03-22 15 views
0

私はフィルタを使用してng-repeatの動的データから合計を取得しています。おそらく私は2桁まで小数点を得ることができないでしょう。それが動作し、「toFixed(2)」珍しいunreadibleの結果が得られた使用しようとしていなかったので、私は「parseFloatは」をコメントアウト浮動小数点解析Float

app.filter('sumByKey', function() { 
    return function (data, key) { 
     if (typeof (data) === 'undefined' || typeof (key) === 'undefined') { 
      return 0; 
     } 

     var sum = 0; 
     for (var i = data.length - 1; i >= 0; i--) { 
      //sum += parseFloat(data[i][key]); 
      sum += Math.round((data[i][key]) * 1e12)/1e12; 
     } 

     return sum; 
    }; 
}); 

:ここに私のフィルタです。私はIEとChromeでこれをテストしていると私はまだ、次を得る:

enter image description here

これは私が「toFixed(上記のように述べたように「toFixed(2)」で回答された質問への重複ではありません2)は、長い狂った読めない数字を返す。

ご協力いただきありがとうございます。

+0

'toFixed(2)'が "珍しい読めない結果を出す"と何を意味するのか詳しく説明できますか? –

+1

'toFixed'は数値ではなく文字列型の戻り値を持っていることに注意してください。あなたの問題を説明するかもしれない。 –

+0

これを修正する方法はありますか? –

答えて

0

Number.toPrecision関数を試してください。

var sum = 0; 
for (var i = data.length - 1; i >= 0; i--) 
    sum += parseFloat(data[i][key]); 

return parseFloat(sum.toPrecision(2)); 
+0

驚くばかり!それはそれをした!感謝万円! –

関連する問題