2016-10-10 1 views
0

Der folgende Code berechnet Prozentsätze für meine Daten. Alles funktioniert gut abgesehen von 100%, die rot sein sollte (# B20000), aber tatsächlich ist grün (# 32CD32). Ich habe eine Option hinzugefügt, die sich speziell auf 100% bezieht, aber selbst das hat keine Wirkung. Irgendwelche Ideen? DankClassic ASP FormatPercent ignoriert 100%?

R = FormatPercent(objRsStat("active_beds")/objRsStat("total_beds"), 2) 
'R = objRsStat("percent_remaining") 
If R =< "60%" Then 
    CL = "#32CD32" 
ElseIf R => "61%" And R =< "79%" Then 
    CL = "#FF8000" 
ElseIf R => "80%" Then 
    CL = "#B20000" 
ELSEIF R = "100%" Then 
    CL = "#B20000" 
END IF 

Aktualisiert-Code (mit Fehler):

If R <= 0.6 Then 
    CL = "#32CD32" 
ELSEIF R => 0.61 AND R <= 0.79 THEN 
    CL = "#FF8000" 
ELSEIF R => 0.80 THEN 
    CL = "#B20000" 
END IF 
+0

Sie können nicht einen String-Wert vergleichen, und es erwarten sich wie ein numerischer Wert verhalten. Teste den rohen Prozentsatz * ('R =>" 61% "' bedeutet nicht, was du denkst) * 'objRsStat (" active_beds ")/objRsStat (" total_beds ")'. – Lankymart

+0

Es funktioniert derzeit so wie es ist - wenn es von String zu numerisch geändert wird, wirft es einen netten Fehler auf. Es ist nur die 100% Zahl, mit der es kämpft. 99% sind in Ordnung, also nehme ich an, dass es irgendwo verwirrt wird und nicht 100% als 100% behandelt - wie 100% wird tatsächlich als 0% Typ Szenario gelesen –

+0

Machen Sie keine Annahmen, siehe @dai [Antwort unten] (http: //stackoverflow.com/a/39960810/692942). – Lankymart

Antwort

1

Sie die falsche Syntax. <= "60%" vergleicht den numerischen Wert in R mit dem String "60%". VBScript beschwert sich nicht darüber, weil es permissive By-Design ist, aber dies verursacht auch stille Probleme - wie Sie es erleben.

Sie verwenden auch falschen Code, der nicht einmal ausgeführt wird: Der Operator "weniger als gleich" ist <= und nicht =<).

Try this:

If R <= 0.6 Then 
    CL = "#32CD32" 

(Sie müssen auch die FormatPercent Funktionsaufruf entfernen, sonst werden Sie einen Typenkonflikt Fehler.)

+0

Danke für die Antwort. Ich habe versucht, habe dies Ihren Vorschlag mit zu ändern, aber ich bin immer Typenkonflikt R Aktuelle Code ist: Wenn R <= 0,6 Dann CL = „# 32CD32“ ELSEIF R => 0,61 und R <= 0,79 DANN CL = "# FF8000" ELSEIF R => 0,80 THEN CL = "# B20000" ENDE IF –

+1

Den Funktionsaufruf 'FormatPercent' entfernen. – Dai

+0

Ah, danke. Dies funktioniert jetzt (markiert als beantwortet). –