2016-02-12 3 views
5

konvertieren Während einige zufällige Ausdrücke in der Konsole ausgeführt wird, ich, dass gerade gefundenWie eine Nummer 010 in eine Zeichenfolge „010“

010 + ""8 Rückkehr (auch 011,0100 .. Ergebnisse der Rückkehr von Oktalsystem bedenkt)

Was müsste ich tun, wenn ich eine Zahl 010 in eine Zeichenkette "010" konvertieren möchte? Nicht nur für 010 sondern für alle ähnlichen Nummern. Ich habe eine ähnliche Erklärung für diese here gefunden. Aber das erklärt nicht, wie man es in eine exakte String-Version umwandelt.

+0

Haben Sie versucht, toString Funktion –

+0

hmm 'number.toString()'? – AshBringer

+0

@BipBip, Jay: "+" wird grundsätzlich '.toString()' intern, wenn es eine Zeichenfolge trifft. '010 +" "' ist gleich '(010) .toString()' Machen Sie einen schnellen Test in Ihrer Konsole. –

Antwort

6

In Javascript 010 ist oktale Literal und wandelt bis 8 in dezimaler Literal. In der Tat sollten Sie es vermeiden, da der strikte Modus es nicht erlaubt.

Es gibt keine Möglichkeit, zwischen Oktal und Dezimalschreibweise andere als Parsing Funktion Körper String :)

1
var num = 10; 
var string = "0" + num.toString(); 
console.log(string);//gives you "010" 

Wie in den Kommentaren zu diesem Beitrag erwähnt, wird es nicht 010 direkt konvertieren, sondern einen String bauen. Nicht die eleganteste Lösung.

+0

was ist mit 0111/010001 usw.? –

+0

Tue einfach dasselbe, aber mit den neuen Zahlen, also 'var num = 111' oder' var num = 10001' – millerbr

5

Erhalten Sie einen String zuerst durch die toString() Methode mit der Basiszahl Aufruf, die 8 in diesem Fall ist

Number(010).toString(8); //outputs "10" 

es funktioniert, ohne zu in Nummer Verpackung,

010.toString(8); //outputs "10" 

Verwendung dieses Verfahren auf PADD 0, wenn Sie die Länge der ursprünglichen Nummer kennen

function pad(n,digits){return n<Math.pow(10, digits) ? '0'+n : n} 

so

pad(Number(010).toString(8),3); //3 is the number of digits 
+0

keine Notwendigkeit (in meiner Prüfung), in 'Number()' einzubinden: '010.toString (8) '. –

+0

Ich bin mir auch nicht sicher, dass Padding mit dem OP-Eingang von '010' funktioniert. –

+0

@DavinTryon hat die Änderungen vorgenommen, um die Anzahl der Ziffern zu übergeben, danke – gurvinder372

3

Verwenden Sie den folgenden Code zu unterscheiden:

"0" + (010).toString(8) // "010" 
"0" + (0111).toString(8) // "0111" 

Und eine allgemeinere Lösung:

function toStringOctal(number) { 
    return "0" + number.toString(8); 
} 

toStringOctal(010) // return "010" 

Aber beachten Sie, dass in strikte Modus Oktal Notationen 0<number> sind nicht erlaubt.

1

Wenn Sie mehrere ähnliche Zahlen in Strings zu konvertieren suchen, können Sie auch eine einfache Funktion erstellen, die die Arbeit tun, wenn sie aufgerufen:

function convertSomething(number) { 
    var string = "" + number; 
    return string 
} 

Dann können Sie einfach Ihre Conversion-Funktion aufrufen, wenn Sie es brauchen .

Verwandte Themen