把 shuifen这个变量的值设置在12-16或22-38之间

我把else if 中的 shuifen<=glmax 改成parseFloat(shuifen)<=glmax就没事儿啦,但是我不理解,哪位大神知道是为什么
slmin=22 slmax=38 glmin=12 glmax=16

JS里:我用if,else if,else 把 shuifen这个变量的值设置在12-16或22-38之间,但是测试的时候,100以上全部也能输入并保存,求大神看看我的代码哪里需要改正。求指导,求改正


if(parseFloat(shuifen)>=parseFloat(slmin)&&parseFloat(shuifen)<=parseFloat(slmax)){
        danjia =slbiaozhunjia- (shuifen-slbiaozhun)*sljiagebodong;
        document.getElementById("ruKu.danJia").value=danjia.toFixed(2);
    }
    else if(parseFloat(shuifen)>=parseFloat(glmin)&&shuifen<=glmax  ){
       danjia =glbiaozhunjia- (shuifen-glbiaozhun)*gljiagebodong;
        document.getElementById("ruKu.danJia").value=danjia.toFixed(2);
    }
    else{alert("水分在"+glmin+"—"+glmax+"或"+slmin+"—"+slmax+"之间")}

因为是弱类型,最好将不等式两边转为同一种数据类型进行比较