javascript中比较两个数字的问题
我的html代码如下所示:javascript中比较两个数字的问题,javascript,html,Javascript,Html,我的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 lo
<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>
函数fun()
{
var l=document.test.low.value;
var h=document.test.high.value;
警报(l);
警报(h);
如果(l>h){
警报(“低大于高-低为-”+l+“高为-”+h);
}
}
当我比较这两个值时,使用low is 12和high is 112不起作用。
比如22和122,33和133等等
我正在使用IE浏览器版本8。请提供帮助。您需要将它们转换为数字:
if(+l > +h){
一元加号运算符将字符串值转换为数值。有关更多详细信息,请参见此问题:.使用带base的以获得正确的结果:
var l = parseInt(document.test.low.value, 10);
var h = parseInt(document.test.high.value, 10);
试着这样做:-
if(parseInt(l,10)>parseInt(h,10))
或者对于浮点数,您可以使用
if(parseFloat(l,10)>parseFloat(h,10))
或者干脆用
Number()
比较if语句中的两个字符串时:
if ( l > h) {}
when l = "12" and h = "112"
它将这两个值作为字符串进行比较,如
“3”>“1”
。它说l>h
是真的不确定parseInt
在这里是否好,例如,10a
将被转换为10
,即使它不是一个真正的数字-使用一元加号将使其成为NaN
值,这在我看来更合适。@ShadowWizard:在这种情况下,+
可以加前缀,然后加上parseInt
,但单独使用+
并不能避免八进制数问题如果数字恰好是八进制格式,它将不起作用:是的,你是对的,那么在这种情况下:使用基本值或简单地使用number()idk原因是什么,但是number()对我不起作用,但是其他东西起作用
var lnum = new Number(l);
var hnmu = new Number(h);
if(lnum > hnum){
alert('if');
}else{
alert('else');
}