Probleme mit Javascript "parseInt ()" [duplizieren]

7
%Vor%

Erzeugt "7"

%Vor%

Erzeugt "0"

Das erzeugt Probleme für mich (Entschuldigung für dieses Geschwätz, ich muss oder ich kann die Frage nicht einreichen). Wer weiß, warum es dumm ist oder ob es eine bessere Funktion gibt?

    
jdborg 06.09.2011, 10:26
quelle

5 Antworten

13

Wenn Ihr Argument mit 0 beginnt, wird es als Oktal analysiert, und 08 ist keine gültige Oktalzahl. Geben Sie ein zweites Argument 10 an, das den Radix angibt - eine Basis 10-Nummer.

%Vor%     
Dennis 06.09.2011, 10:28
quelle
6

Verwenden Sie diese Änderung

%Vor%

Regeln für parseInt(string, radix)

Wenn der radix-Parameter nicht angegeben wird, geht JavaScript von folgendem aus:

  • Wenn die Zeichenfolge mit "0x" beginnt, ist die Radix 16 (hexadezimal)
  • Wenn die Zeichenfolge mit "0" beginnt, ist die Radix 8 (oktal). Diese Funktion ist veraltet
  • Wenn die Zeichenfolge mit einem anderen Wert beginnt, ist die Radix 10 (dezimal)
Marek Sebera 06.09.2011 10:28
quelle
2

Sie möchten, dass parseInt('08', 10) angibt, dass es als Dezimalzahl analysiert werden soll.

    
Quentin 06.09.2011 10:27
quelle
2

Sie verwenden nur Eingabeparameter dieser Funktion falsch. Weitere Informationen finden Sie hier . Grundsätzlich:

  

Die Funktion parseInt () analysiert eine Zeichenfolge und gibt eine Ganzzahl zurück.

     

Der radix-Parameter wird verwendet, um anzugeben, welches Zahlensystem zu sein hat   verwendet, zum Beispiel, eine Radix von 16 (hexadezimal) zeigt an, dass die   Nummer in der Zeichenfolge sollte von einer hexadezimalen Zahl zu a analysiert werden   Dezimalzahl.

     

Wenn der Parameter radix weggelassen wird, geht JavaScript von folgendem aus:   Wenn die Zeichenfolge mit "0x" beginnt, ist die Radix 16 (hexadezimal)   Die Zeichenfolge beginnt mit "0", die Radix ist 8 (oktal). Diese Funktion ist   veraltet Wenn die Zeichenfolge mit einem anderen Wert beginnt, ist die Radix 10   (dezimal)

Also 07 und 08 wird in Oktal geparst. Deshalb 07 ist 7 und 08 ist 0 (es ist auf den nächsten gerundet)

    
chaZm 06.09.2011 10:31
quelle
1

Versuchen Sie Folgendes:

%Vor%

es wird 8

erzeugen     
Tushar Ahirrao 06.09.2011 10:29
quelle

Tags und Links