5

JavaScript ライブラリを使用すると、数値を表す文字列が得られます。ここで、代わりに文字列連結を行わずに、その数値に加算を実行したいと考えています。数値が常に整数である場合、解決策は簡単です ( 文字列を返す値に javascript (jquery) で整数値を追加するにはどうすればよいですか?連結の代わりに加算を行う方法)。ただし、私の文字列は浮動小数点数または整数である可能性があり、追加時にはどちらになるかわかりません。浮動小数点数か整数かに関係なく、加算が確実に行われるようにする方法はありますか?

4

4 に答える 4

10

を使ってみてくださいparseFloat。入力変数は浮動小数点数に変換されます。これは、文字列に整数または浮動小数点数が含まれているかどうかに関係なく機能します。結果は常に float になります。

于 2012-10-19T20:43:26.167 に答える
4

parseFloat整数が与えられたとしても、常に使用することはかなり安全です。適切な変換を使用する必要がある場合はmatch、小数点に対して適切な関数を使用できます。

于 2012-10-19T20:43:32.557 に答える
2

フロートの追加で十分であると仮定します。そうでない場合は、さらに深く掘り下げる必要があります。

function alwaysAddAsNumbers(numberOne, numberTwo){
  var parseOne = parseFloat(numberOne),
      parseTwo = parseFloat(numberTwo);
  if (isNaN(parseOne)) parseOne = 0;
  if (isNaN(parseTwo)) parseTwo = 0;
  return parseOne + parseTwo;
}

@Asadが言ったことを理解するには、代わりにこれを実行することをお勧めします:

function alwaysAddAsNumbers(a, b){
  var m = 0,
      n = 0,
      d = /\./,
      f = parseFloat,
      i = parseInt,
      t = isNaN,
      r = 10;
  m = (d.test(a)) ? f(a) : i(a,r);
  n = (d.test(b)) ? f(b) : i(b,r);
  if (t(m)) m = 0;
  if (t(n)) n = 0;
  return m + n;
}

これは常に少なくともゼロの出力を提供し、どちらかがNaN.

于 2012-10-19T20:45:21.677 に答える
0

なんらかの理由で....誰が知っていますか???

parseFloat の使用は機能します.... parseInt が機能しない場合...明らかに、常に同じであるとは限りません。

FWIW ....ここで「チェックされた」チェックボックスからデータ要素を「追加」しています...

    var AddOns = 0;

    $( '.broadcast-channels').each(function(){              
        if ( $(this).prop("checked")) {                             
            var thisAddOn =  parseFloat($(this).data('channel'));      
            AddOns = AddOns + thisAddOn;                                      
        }           
});
于 2013-11-27T19:12:00.163 に答える