0

我正在尝试验证用户输入的值是否在等于先前用户输入的数字加/减常数的范围内,但脚本似乎只识别范围的下限,而上限始终是之前的用户输入的数字加上任何小于 1 的值(又名用户输入 55,所以 55.999999 有效,但 56 变为红色)。代码:

if (BUNO.rawValue>=164865){ 
    if (Auto1Right.rawValue>=45 && Auto1Right.rawValue<=75)
    {
        var eleven = 11.00;
        var auto2min=Auto1Right.rawValue-eleven;
        var five = 5.70; 
        var auto2max=Auto1Right.rawValue+five;
        if (this.rawValue>=auto2min&&Man2Right.rawValue<=auto2max)
        {
            Man2Right.fillColor="0,255,0";
        }


    }
    else
    {
        Man2Right.fillColor="255,0,0";
    }

}
4

3 回答 3

0

听起来 rawValue 被解释为字符串,而不是数字。您是否尝试过强制转换变量

if ( parseFloat(BUNO.rawValue) >= 164865 ){
    var a1r = parseFloat(Auto1Right.rawValue)
    if (a1r>=45 && a1r<=75)
    {
        var eleven = 11.00;
        var auto2min=Auto1Right.rawValue-eleven;
        var five = 5.70; 
        var auto2max = a1r + five;

        var thisRV = parseFloat(this.rawValue) ;
        var m2RV = parseFloat(Man2Right.rawValue) ;
        if (thisRV>=auto2min && m2RV<=auto2max)
        {
            Man2Right.fillColor="0,255,0";
        }


    }
    else
    {
        Man2Right.fillColor="255,0,0";
    }

}
于 2013-08-14T21:31:52.793 回答
0

我想你可能只是有一个小错字。这里有两个等号

var auto2max==Auto1Right.rawValue+five;

它应该看起来像这样:

var auto2max = Auto1Right.rawValue + five;
于 2013-08-13T20:37:02.427 回答
0

显然,这可以通过将“+”符号更改为“-”符号并将变量值更改为负数来避免。

我不知道为什么它不会在不将变量更改为字符串的情况下使用“+”进行加法。根据我能找到的所有内容,“+”符号应该同时添加数字和字符串。

于 2013-08-14T21:27:08.290 回答