Wie kann ich bei einer Zeichenfolgendarstellung einer Zahl diese number
in TypeScript konvertieren ?
var numberString: string = "1234";
var numberValue: number = /* what should I do with `numberString`? */;
typescript
Paul0515
quelle
quelle
console.log(typeof <number><any>"1", typeof Number("1"))
wird gedrucktstring number
.Antworten:
Genau wie in JavaScript , können Sie die verwenden
parseInt
oderparseFloat
Funktionen, oder einfach die einstelligen verwenden+
Betreiber:Alle genannten Techniken haben eine korrekte Typisierung und analysieren einfache dezimale Ganzzahlzeichenfolgen wie korrekt
"123"
, verhalten sich jedoch für verschiedene andere, möglicherweise erwartete Fälle (wie"123.45"
) und Eckfälle (wienull
) unterschiedlich.Tabelle aus dieser Antwort entnommen
quelle
Der Typescript-Weg, dies zu tun, wäre:
wie hier beantwortet: https://stackoverflow.com/a/23440948/2083492
quelle
isNaN
Funktion können Sie nach NaN suchen .let a = Number('x') || 0;
-Number('x')
würde zurückkehrenNaN
, was "falsey" ist. Dahera
würde0.
viel sauberer und wohl (etwas) schneller zugewiesen als die ternäre Anweisung zu verwenden und zweimal zu analysieren.Für unsere Angular-Mitbenutzer:
Innerhalb einer Vorlage ,
Number(x)
undparseInt(x)
wirft einen Fehler, und+x
hat keine Auswirkungen. Gültiges Casting istx*1
oderx/1
.quelle
Number
es nicht im Bewertungsbereich liegt. Sie können schreibenclass MyComponent { Number = Number; }
, um es zu verwenden.Wie andere Antworten hier zeigen, gibt es mehrere Möglichkeiten, die Konvertierung durchzuführen:
Ich möchte jedoch noch etwas erwähnen
parseInt
.Bei der Verwendung
parseInt
ist es sinnvoll, immer den Radix-Parameter zu übergeben . Für die Dezimalumrechnung also10
. Dies ist der Standardwert für den Parameter, weshalb es kann weggelassen werden. Für Binär ist es ein2
und16
für Hexadezimal. Tatsächlich funktioniert jeder Radix zwischen und einschließlich 2 und 36.Die
parseInt
Funktion analysiert Zeichenfolgen, um sie in Zahlen umzuwandeln. In einigen JS-Implementierungen werdenparseInt
führende Nullen als Oktal analysiert:Die Tatsache, dass der Code klarer wird, ist ein netter Nebeneffekt bei der Angabe des Radix-Parameters.
Da
parseFloat
in Radix 10 nur numerische Ausdrücke analysiert werden, ist hier kein Radix-Parameter erforderlich.Mehr dazu:
quelle
TypeScript erläutert, was Ryan gesagt hat, und verwendet im Allgemeinen die JavaScript-Redewendungen.
Alle interessanten Details bei der JavaScript-Typkonvertierung .
quelle
Sie können eine der folgenden Möglichkeiten wählen.
quelle
Umwandlung von Zeichenfolgen in Zahlen:
In Typescript konvertieren wir eine Zeichenfolge auf folgende Weise in eine Zahl:
ParseInt()
: Diese Funktion benötigt 2 Argumente, das erste ist eine zu analysierende Zeichenfolge. Der zweite ist der Radix (die Basis in mathematischen Zahlensystemen, z. B. 10 für Dezimal und 2 für Binär). Es wird dann die Ganzzahl zurückgegeben, wenn das erste Zeichen nicht in eine Zahl umgewandelt werden kann,NaN
wird zurückgegeben.ParseFloat()
: Nimmt als Argument den Wert, den wir analysieren möchten, und gibt eine Gleitkommazahl zurück. Wenn der Wert nicht in eine Zahl konvertiert werden kann,NaN
wird zurückgegeben.+
Operator: Der Operator kann bei entsprechender Verwendung einen Zeichenfolgenwert in eine Zahl zwingen.Beispiele:
Welche verwenden?
ParseInt()
Sie diese Option, wenn eine Zeichenfolge in eine Ganzzahl konvertiert werden soll . Der Datentyp ist jedoch immer noch ein Gleitkommawert , da alle Zahlenwerte Gleitkommawerte in TS sind . Verwenden Sie diese Methode auch, wenn Sie den Radix der Zahl angeben müssen, die Sie analysieren möchten.ParseFloat()
Sie diese Option, wenn Sie eine Zeichenfolge in eine Gleitkommazahl analysieren müssen .+
Operator vor einer Zeichenfolge verwenden, um sie in eine Gleitkommazahl zu zwingen . Dies hat den Vorteil, dass die Syntax sehr kurz ist.quelle
Am einfachsten ist es, + strVal oder Number (strVal) zu verwenden.
Beispiele:
quelle
Es gibt eingebaute Funktionen wie
parseInt()
,parseFloat()
undNumber()
in Maschinenschrift, können Sie diese verwenden.quelle
Rufen Sie die Funktion mit => convertstring ('10 .00 ') auf.
parseFloat (string) => Es kann verwendet werden, um in float, toFixed (4) => in wie viele Dezimalstellen umzuwandeln
parseInt (str) => Kann zur Konvertierung in eine Ganzzahl verwendet werden
quelle
Online-Tool zur Nummernkonvertierung
Nummernwandler
quelle
Es gibt drei Möglichkeiten
quelle
Viele von Ihnen haben ein Problem mit der Konvertierung von Datentypen, die in Situationen der ionischen Programmierung schwer zu lösen sind, da genau diese Sprache neu ist. Hier werde ich dem Benutzer detaillierte Anweisungen geben, wie er Datenionentypen in Zeichenfolgendaten konvertieren kann Geben Sie eine Ganzzahl ein.
In Programmiersprachen wie Java, PHP, C, C ++, ... können alle Daten leicht verschieben, dann kann in ionic auch für uns die Datenkonvertierung eine einfache Möglichkeit sein, nicht zuletzt in anderen Programmiersprachen.
quelle
Wenn Sie nur über Typen sprechen, wie andere Leute sagten, gibt parseInt () usw. den richtigen Typ zurück. Wenn der Wert aus irgendeinem Grund sowohl eine Zahl als auch eine Zeichenfolge sein kann und Sie parseInt () nicht aufrufen möchten, wird der Typ der Ausdrücke ebenfalls in den richtigen Typ umgewandelt:
quelle
Hier ist eine modifizierte Version der StrToNumber-Funktion. Wie vorher,
Diese Antwort ist eine mögliche Lösung, die besser für die ursprüngliche Frage geeignet ist als mein vorheriger Beitrag.
quelle
Typoskript muss wissen, dass unser
var a
Äther sein wirdNumber || String
quelle
Sie können jederzeit die Cast-Option verwenden. Zuerst müssen Sie Ihr Objekt in den Typ "unbekannt" konvertieren und dann in einen erwarteten Objekttyp umwandeln.
quelle
console.log(typeof <number><unknown>"1", typeof Number("1"))
wird gedrucktstring number
.