Javascript rechnet falsch: 8+1 = 1?

Da Hacker

Erfahrenes Mitglied
Hi Ihr!

Ich hab ein sehr seltsames Problem mit einer Rechnung via Javascript.

Den Fehler könnt ihr euch auf http://www.LwTV.de ansehen, indem ihr zu den Bildern navigiert und euch einfach mal durch die Bilder klickt(nicht mit den Thumbnails sondern mit der unteren Leiste).

Folgender Code ist fehlerhaft:

Javascript:
var max_bilder = 19;
					var akt_bild = 01;
					var max_stellen = 2;
					var akt_session = 3
					var request = false;

					function Steuerleiste()
					{
								// aktuell: 8 = Länge 1
								// insgesamt: 70 = Länge 2
						var vorheriges_Bild = (parseInt(akt_bild) - 1);
						var nextes_Bild = (parseInt(akt_bild) + 1);
						var vorheriger_Link = '';
						var nexter_Link = '';

						if( parseInt(vorheriges_Bild) < parseInt(01) )
						{
							//Keinen Link anzeigen
							vorheriger_Link = "zur&uuml;ck";
						}
						else
						{
							//Link anzeigen, auf vorheriges Bild
							vorheriger_Link = "<a href='javascript:ladeBild(" + vorheriges_Bild + ");'>zur&uuml;ck</a>";
						}


						if( parseInt(nextes_Bild) > parseInt(max_bilder) )
						{
							//Keinen Link anzeigen
							nexter_Link = "weiter";
						}
						else
						{
							//Link anzeigen, auf nächstes Bild
							nexter_Link = "<a href='" + "javascript:ladeBild(" + nextes_Bild + ");'>weiter</a>";

						}

document.getElementById('foto_steuerleiste').innerHTML = vorheriger_Link + ' - Bild ' + akt_bild + ' von ' + max_bilder + ' Bildern - ' + nexter_Link;

					}

Wieso zählt der Browser nicht richtig, wenn das aktuelle Bild eine 8 oder eine 9 ist - dafür aber richtig, wenn es eine andere Zahl ist.

Zu sagen wäre noch, dass das Problem im IE und im FF auftritt - aber nicht im Opera.

Ich würde mich freuen, wenn mir jemand von euch helfen könnte.
Vielen Dank schonmal.

Ciao:
Adam
 
Zuletzt bearbeitet von einem Moderator:
Moin Adam,

ersetze mal überall das parseInt() durch Number()

Optional kannst du auch parseInt() durch einen 2.Parameter erweitern, der das Zahlensystem angibt(in dem Fall 10 für Dezimalsystem)...denn Zahlen mit führender 0 werden in JS als Oktalzahl und nicht als Dezimalzahl angesehen(und im Oktalsystem gibt es keine 8 oder 9, weshalb bei dir 0 draus wird :-) )
 
Hi Sven,

du bist der Profi - hast ja auf alles eine Antwort. Wahnsinn. Vielen Dank, klappt wunderbar

Tja, die Mathematik... ...war noch nie meine Stärke :P

Schöne Woche noch,

Ciao:
Adam
 

Neue Beiträge

Zurück