2010-02-24 10 views
16

Ich versuche, JavaScript zu verwenden, um eine string in eine int zu ändern.versucht, Zeichenfolge zu ändern -> Int

var intVal = gSpread1.Text * 1; 

Ich will intVal ‚s Typ int sein.

kann ich einen int-Wert erhalten, wenn gSpread1.Text kleiner als 1000.

Aber wenn gSpread1.Text größer als 1000, intVal kehrt NaN

Was ist der richtige Weg ParseInt zu bedienen, dass es, um sicherzustellen, immer gibt einen int Wert zurück?

+0

Es sollte funktionieren, werden Sie zum Debuggen haben und den Wert zu überprüfen, die 'NaN' erzeugt ... – CMS

+0

Thank Sie, jetzt fange ich den Grund. gSpread1.Text mit komma (,) wenn gSpread1.Text 1.234 Konvertit ist in int nicht funktioniert ... ich Sie wirklich alle danken –

Antwort

37

Haben Sie versucht, intVal = parseInt(gSpread1.Text, 10);

Die 10 ist die Radix, und geben Sie das Zahlensystem zu verwenden, genannt.

UPDATE: Es gibt auch eine nützliche Verknüpfung mit dem + Symbol.
zB +gSpread1.Text wird die Zeichenfolge in eine Zahl konvertieren. Und gibt je nach Zeichenfolgenwert integer oder float zurück.

+0

Gute Antwort - ParseInt passen ohne radix, weil „09“ nicht a Nummer (Nr. 9 in Oktal, was das Präfix 0 darstellt) – Nicole

+0

+1 für die Verknüpfung :) – Binod

0

Der folgende Code funktioniert für mich:

var intVal = parseInt("100000"); 
alert(intVal); 

Vielleicht ist Ihr nicht funktionierenden Code schreiben? Das Problem könnte woanders liegen.

2

Es gibt keinen int-Typen in JavaScript. Nur Nummer. parseInt ist in Ordnung, wenn Sie eine nicht-dezimale Zahl haben, oder Sie haben möglicherweise Abfall nach der Zeichenfolge wie "5asdkfkasdk". Aber für den Fall, dass Sie wissen, dass Ihre Zeichenfolge nur Dezimalstellen ist, verwende ich lieber den Konstruktor Number(). Es sieht eleganter aus und ist C- und Python-Programmierern, die viel Casting betreiben, vertrauter.

var numericValue = Number("100000"); 
var numericValue2 = parseInt("100000", 10); 

Diese ergeben das gleiche Ergebnis des gleichen Typs.

0

Wenn Sie sicher sind, dass die Zeichenfolge enthält int Sie nur eine +

können
var n = "455"; 
n = +n; // now n is integer 
Verwandte Themen