-1

重複の可能性:
JavaScript で文字列を整数に変換するにはどうすればよいですか?

私は次のコードを持っています:

    $.ajax({
      type: "GET",
      url: 'index.php?act=ajax&op=getShippingPrice&id='+shippingID,
      success: function(data) {
        var currentPrice = Number($("#finalPrice").html());
        var newPrice = Number(currentPrice + data);
        $("#finalPrice").html(newPrice);
      }
    });

新しい価格を計算してみます。しかし、実際には、現在の価格を含む newPrice の文字列を取得し、その直後に ajax からのデータを取得します。

現在の価格が 1500 で、ajax からのデータが 10 の場合、得られるのは 1510 ではなく 150010 です。

私もparseIntを使用しようとしましたが、おそらく正しく使用していませんでした。

4

5 に答える 5

4

これを使って:

小数の価格を想定しparseFloat、そうでない場合は、を使用しますparseInt

$.ajax({
  type: "GET",
  url: 'index.php?act=ajax&op=getShippingPrice&id='+shippingID,
  success: function(data) {
    var currentPrice = parseFloat($("#finalPrice").html());
    var newPrice = currentPrice + parseFloat(data));
    $("#finalPrice").html(newPrice.toFixed(2));
  }
});
于 2013-01-03T08:41:12.537 に答える
2

それを好きにしてください:

var newPrice = parseInt(currentPrice) + parseInt(data);
于 2013-01-03T08:41:27.523 に答える
0

これはあなたを助けます:

 var newPrice = 1*currentPrice + 1*data;

乗算する1と結果は変わりませんが、変数の型は変わります。

于 2013-01-03T08:42:36.457 に答える
0

HTMLから派生した値を最初に数値に変換します(そして、先行ゼロに対処するために基数パラメーターを指定するようにしてください)。

また、存在する可能性のある空白をすべて削除する必要があります。

var currentPrice = parseInt($.trim($("#finalPrice").html()), 10);
var newPrice = currentPrice + data;

dataサーバーからの出力がJSON形式でない場合は、追加する前にフィールドも変換する必要があります。

data = parseInt(data, 10);

最後に、数値が実際には整数でない場合は、parseFloat代わりにを使用してくださいparseInt

于 2013-01-03T08:42:44.687 に答える
-1

次のように変更してみてください。

$.ajax({ type: "GET", url: 'index.php?act=ajax&op=getShippingPrice&id='+shippingID, success: function(data) {

    var newPrice = Number(currentPrice + Number($("#finalPrice").html()));
    $("#finalPrice").html(newPrice);
  }
});

少なくともエラーが発生します。

于 2013-01-03T08:43:20.187 に答える