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

どうやらこれは、「+」記号を「-」記号に変更し、変数値を負の数に変更することで回避できます。

変数を文字列に変更せずに加算に「+」を使用しない理由がわかりません。すべてによると、「+」記号は数字と文字列の両方を追加する必要があります。

于 2013-08-14T21:27:08.290 に答える