2017-08-17 79 views
-4

爲什麼我的JavaScript比較運算符代碼工作不正確?爲什麼我的JavaScript比較運算符代碼工作不正確?

在此代碼requests_withdraw是300和金錢是

1200.34但是當我測試的代碼它會提醒not enough money for withdraw爲什麼?我能怎麼做 ?

<script> 
 
reqests_withdraw = "300"; 
 
money = "1200.34"; 
 
if(reqests_withdraw > money) 
 
{ 
 
    alert("not enough money for withdraw"); 
 
} 
 
else 
 
{ 
 
\t alert("OK"); 
 
} 
 
</script>

+10

你'比較**字符串**,而不是數字。 – Pointy

+1

順便說一句,它工作正常。 –

+0

我敢肯定,這是一個騙局......雖然找不到。 –

回答

2

您比較沒有數字

刪除雙引號

reqests_withdraw = 300; 
 
money = 1200.34; 
 
if (reqests_withdraw > money) { 
 
    alert("not enough money for withdraw"); 
 
} else { 
 
    alert("OK"); 
 
}

2

您比較在你的代碼串,你需要使用parseFloat()

<script> 
 
reqests_withdraw = "300"; 
 
money = "1200.34"; 
 
if(parseFloat(reqests_withdraw) > parseFloat(money)) 
 
{ 
 
    alert("not enough money for withdraw"); 
 
} 
 
else 
 
{ 
 
\t alert("OK"); 
 
} 
 
</script>

+1

如果他要從textarea的html中收集輸入,這很好,但如果不是,Weedoze的答案會更好。當你可以從一個數字開始時,不需要將一個字符串解析成數字。 –

+1

這將是可能的情況下,我想,爲什麼有人將數字初始化爲引號字符串 – Dij

+0

ya這樣做的唯一原因是作爲佔位符來確保javascript在將其與html集成之前全部有效。我投其初學者的錯誤,雖然 –

0

育有串存在,並且比較第一個字母。如果相等,則比較第二個字母。

"330.23">"340" 
false 
"330.23">"240" 
true 
"330.23">"2040" 
true 

使用它們if財務報表的折算值,使用parseFloat

1

上面已經回答了浮動,但作爲一個選項,另一種方式將一個字符串分成若干

reqests_withdraw = "300"; 
    money = "1200.34"; 
    if(+reqests_withdraw > +money) 
    { 
     alert("not enough money for withdraw"); 
    } 
    else 
    { 
     alert("OK"); 
    } 
+0

Upvote因爲我不知道 –

相關問題