ChrisB: Strings sind keine Zahlen

Beitrag lesen

Hi,

ich will eine Tabelle generieren die mir das ein mal eins variabel erstellt. Nun funktioniert mein Programm mit den Zahlen 1und 10, aber nicht mit 2 und 10. Das heisst es gibt Zahlen bei denen das ganze funktioniert und welche bei denen nicht. Warum ist das so?

Weil keine Zahlen verwendet werden.

Max_Wert = document.Formular.Endwert.value;
  Min_Wert = document.Formular.Startwert.value;

Du liest hier die Werte aus Formularfeldern aus - dabei erhältst du *immer* Strings, keine Zahlen.

for (i = Min_Wert; i <= Max_Wert; i++)

Stringvergleiche werden immer Zeichen-für-Zeichen durchgeführt.

Wenn du "1" mit "10" vergleichst, dann ist "1" kleiner als "10" - weil das erste Zeichen in beiden Strings gleich ist, und der erste danach schon zuende ist, beim zweiten jedoch noch etwas folgt.

Wenn du "2" mit "10" vergleichst - dann ist "2" grösser als "10", weil das erste Zeichen "2" des ersten Strings grösser ist als das erste Zeichen "1" des zweiten Strings - also ist die Bedingung deiner for-Schleife schon von Anfang an nicht erfüllt.

Wandle die Strings, die du aus den Formularfeldern ausliest, erst in Zahlenwerte um - bspw. mittels parseInt.

MfG ChrisB

--
Light travels faster than sound - that's why most people appear bright until you hear them speak.