Ich verstehe dein Programm nicht ganz:
X enthält schon vor dem IF den Wert?
Warum greifst du dann aud das Array zurück und schreibst nicht
X = -1*X
Ich habe mit Bascom keine Erfahrung, aber könnte es hier ein Problem mit der Umwandlung des Strings nach double sein?

/jan