簡體   English   中英

在javascript中比較兩個數字的問題

[英]issue with comparing two numbers in javascript

我的HTML代碼是這樣的:

<html>
<SCRIPT type="text/javascript" language="JavaScript">   
function fun()
{
var l = document.test.low.value;
var h = document.test.high.value;
alert(l);
alert(h);
    if(l >h){
        alert("low greater than high low is -"+l+"high is -"+h);
    }
}
</SCRIPT>

<body>

<form name="test">
<input type="text" size="11" id="low" />
<input type="text" size="11" id="high" />
<input type="button" value="sss" onClick="fun()"/> 
</form>
</body>
</html>

當我使用low為12和high為112比較這兩個值時不起作用。 例如22和122、33和133等...

我正在使用IE瀏覽器版本8。請提供幫助。

嘗試這樣:-

if(parseInt(l,10)>parseInt(h,10))

或您可以使用的浮動數字

if(parseFloat(l,10)>parseFloat(h,10))

或簡單地使用

Number()

您需要將它們轉換為數字:

if(+l > +h){

一元加號運算符會將字符串值轉換為數字值。 有關更多詳細信息,請參見此問題:
一元加減運算符的重要用途是什么?

現場例子

parseInt 與base一起使用可獲得正確的結果:

var l = parseInt(document.test.low.value, 10);
var h = parseInt(document.test.high.value, 10);
var lnum = new Number(l);
var hnmu = new Number(h);
if(lnum > hnum){
alert('if');

}else{
alert('else');
}

在if語句中比較兩個字符串時:

if ( l > h) {}    
when l = "12" and h = "112"

它將這兩個值作為字符串比較為"3" > "1" 它說l > h

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM