2013-05-16 40 views
2

數轉換我有如下的功能:字符串在javascript

payementReceived=data.toJSON().total; 
paymentTotal=$("#paymentTotal").html(); 

console.log(typeof(parseInt(paymentTotal)));     
console.log(typeof(parseInt(paymentReceived))); 
console.log(parseInt(paymentTotal)-parseInt(paymentReceived)); 

我得到在控制檯下面

number 
number 
NaN 

如果兩個都是數字,那麼爲什麼它不是我不明白能夠給出適當的減法結果。

+0

'新的Number()',不只是'Number()'。或者--parseInt(xxx,10)' – Oded

+0

請參閱我的編輯 – beNerd

+0

'typeof(NaN)===「number」' – Niklas

回答

2

值爲number,因爲它們的內容是一個數字,但並不表示該數字是有效的。

typeof NaN === 'number' 

如果你得到一個NaN從減法,一個或兩個的輸入值的背後,是無效號碼。

0

問題是因爲使用「paymentReceived」如果你是確保結果是一個數字,你可以隨時使用下面的代碼

的console.log parseInt函數

console.log(parseInt(paymentTotal)-parseInt(payementReceived)); 
-1

嘗試(未定義varaible的數(paymentTotal)個(payementReceived));

+0

不行不行... – beNerd

0

只是一個有趣的想法:

if (typeof n === "number" && n+1 !== n) { 
    // this is a valid number 
} 

無效+ 1將仍然是無效的,因此它可以檢查無效號碼。