Zur Navigation

Dreistellige Zahl im Array

1 KeepCat (Gast)

Moin moin ihr Java-Cracks

ich habe ein Array per .js-Datei definiert, wo ich den 7ten Eintrag mit dem 8ten Eintrag vergleichen möchte und wenn der 7te größer ist, als der 8te, dann soll er (per JavaScript) [7]-[8] rechnen, ansonsten [8]-[7].
Soweit so gut funzt es auch, aber wenn der 7te Eintrag eine DREISTELLIGE Zahl ist und der 8te nur eine ZWEISTELLIGE Zahl ist, erkennt er nicht den Unterschied.

Bitte, sagt mir, was mache ich falsch?

(Anmerkung: Ich deklariere die Werte nicht als Zahlen, da ich leider nicht genau weiß, wie das mit JavaScript geht (falls es überhaupt geht und überhaupt notwendig ist))

Gruß Thomas

11.09.2006 19:37

2 Jörg Kruse

Hallo Thomas

die Typenzuweisung ist denke ich nicht notwendig - auch wenn du die Zahlen als Strings in den Array aufnimmst, wertet JavaScript sie als Zahlen, wenn diese mit Vergleichsoperatoren <, > und = verglichen werden

Dass das Problem an der Dreistelligkeit liegt, kann ich mir auch nicht so recht vorstellen. Vielleicht liegt der Fehler ja auch noch woanders - kannst du vielleicht einen relevanten Beispielcode hier posten?

11.09.2006 20:20 | geändert: 11.09.2006 20:20

3 KeepCat (Gast)

Auszug aus dem Array:

var TabelleGesArr=new Array();
TabelleGesArr[0]=new Array( '1','Riddagshausen','TC Riddagshausen 09 I','26','22','3', '1','116', '26','69');


Vergleichsoperation im anderen .js-File:

if(TabelleGesArr[i][7] > TabelleGesArr[i][8])
{Diff='+'+(TabelleGesArr[i][7] -TabelleGesArr[i][8])}
else{if(TabelleGesArr[i][7] < TabelleGesArr[i][8])
{Diff='-'+(TabelleGesArr[i][8] - TabelleGesArr[i][7])}
}

Und ich habe bereits experimentiert, was die 116 und die 26 angeht.
Wenn ich aus der 26 eine 106 (zB) mache, dann rechnet er korrekt, auch wenn ich aus der 116 eine 96 mache.
Aber in der Konstellation will es einfach nicht funzen.

(Oder ich habe ein extremes Brett vor dem Kopf ... lol ...)

Gruß Thomas

11.09.2006 20:34

4 Jörg Kruse

Ja, es scheint in der Tat ein Problem zu geben, wenn die Zahlen als Strings, d.h. innerhalb von Quotes ('') geschrieben werden. Bei Zahlen, mit denen gerechnet wird, lässt du die Quotes am besten weg:

var TabelleGesArr=new Array();
TabelleGesArr[0]=new Array( '1','Riddagshausen','TC Riddagshausen 09 I',26,22,3,1,116,26,69);

Dann funktioniert der Vergleich

11.09.2006 20:49 | geändert: 11.09.2006 20:50

5 KeepCat

DANKE Jörg ...

genau DAS war mein Fehler ... lol ...

Aber ist doch dennoch erstaunlich, das das Rechnen (trotz der Quotes) funktioniert, nur aber wenn die Anzahl der Zeichen GLEICH ist. Denn ich habe eben mal probiert, einfach eine 026 zu schreiben und dann ging es auch ...)

Aber: Man lernt nie aus!

Danke nochmal Jörg ...


Gruß Thomas

11.09.2006 20:54

Beitrag schreiben (als Gast)

Die Antwort wird nach der Überprüfung durch einen Moderator freigeschaltet.





[BBCode-Hilfe]