2012-04-25 85 views
1

比方說,我有這個片段。這個===不適用浮點舍入不準確的B/C嗎?

var age = prompt('what is your age?'); 

if (age === 30) 
{ 
alert('your age is 30'); 
} 

當我在提示中輸入30時,if語句不會觸發。我懷疑它與浮點舍入錯誤有關,但並不確定。聽到你的想法會很棒。

回答

11

window.prompt()返回一個字符串。字符串與數字不相同。使用以下任一方法:

if (age === '30') 
if (+age === 30) // Explicit type conversion 
if (age == 30) // Implicit type conversion 

有關顯式轉換的說明,請參閱this answer。例如,輸入00030也可能有效。

+1

OP可能也會忽略對===的真正含義的理解 - 可能也要包括這個以及 – JRaymond 2012-04-25 21:54:44

+0

@JRaymond如果是這樣的話,我參考這個問答:http://stackoverflow.com/questions/359494/ javascript-vs-it-matter-which-equal-operator-i-use – 2012-04-25 21:55:45

+0

我認爲主要問題是我對字符串和數字類型感到困惑。也許我應該在提示符中轉換類型。 – stanigator 2012-04-25 22:04:31