2013-01-03 94 views
-1

可能重複:
How do I Convert a String into an Integer in JavaScript?字符串INT(數字)

我有以下代碼:

$.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,並從阿賈克斯的數據是10,我所得到的是150010,而不是1510

我還試圖用parseInt函數,可能沒有使用它的權利。

+0

將每個字符串包裝在parseInt中 – mplungjan

+0

是的,它很可能是'$('#finalPrice').html()'輸出一個字符串,而不是一個int,使用'parseInt'會將字符串轉換爲一個整數,而不是'+'操作符'連接'一個字符串,它會'添加'到整數。 – Ohgodwhy

+0

如果要執行加法,兩個操作數都需要是數字。 –

回答

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)); 
    } 
}); 
+0

現在一個toFixed,我們在那裏 – mplungjan

+0

@mplungjan謝謝,更新... – ATOzTOA

+0

@mplungjan恕我直言,你自己對OP的要求做了太多的假設。他說他嘗試過'parseInt',所以期望字段實際上是整數是合理的,在這一點上使用'parseFloat'和'toFixed'是不合適的。 – Alnitak

2

不喜歡它:

var newPrice = parseInt(currentPrice) + parseInt(data); 
0

這將幫助您:

var newPrice = 1*currentPrice + 1*data; 

乘以1不改變結果,但它會改變變量的類型。

+0

有內置功能來做到這一點! – mplungjan

+0

是的,但沒有理由採取佳能關閉麻雀:) – bumerang

+0

而你甚至不需要'數字'功能之後。 – bumerang

0

首先將您的HTML派生值轉換爲數字(並確保您提供radix參數以應對前導零)。

你也應該去除可能存在的任何空白:

data = parseInt(data, 10); 

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

如果來自服務器的輸出不是JSON格式,那麼你也應該加入之前過於轉換data

最後,如果你的號碼實際上不是整數,使用的parseFloat代替parseInt

+0

數據肯定是一個字符串 – mplungjan

+0

@mplungjan如果響應是JSON的話--OP沒有說。 – Alnitak

+0

我永遠不會相信它是數字的 – mplungjan

-1

嘗試MODI fying像這樣的:

$阿賈克斯({ 類型: 「GET」, 網址: 'index.php的行爲= ajax的& OP = getShippingPrice & ID =' + shippingID, 成功:功能(數據) {

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

至少你會得到錯誤。

+0

爲什麼在數字中包裝數字? – mplungjan