我正在尝试验证用户输入的值是否在等于先前用户输入的数字加/减常数的范围内,但脚本似乎只识别范围的下限,并且上限始终为先前用户输入的数字加上任何小于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";
}
}
答案 0 :(得分:0)
我想你可能只是有一个小错字。 你在这里有两个相同的标志
var auto2max==Auto1Right.rawValue+five;
应该看起来像这样:
var auto2max = Auto1Right.rawValue + five;
答案 1 :(得分:0)
显然可以通过将“+”符号更改为“ - ”符号并将变量值更改为负数来避免这种情况。
我不知道为什么在不将变量更改为字符串的情况下不会使用“+”进行添加。根据我能找到的所有内容,“+”符号应该同时添加数字和字符串。
答案 2 :(得分:0)
听起来rawValue被解释为字符串,而不是数字。你试过casting your variables吗?
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";
}
}