2010-09-02 23 views

risposta

55
var x = "1px"; 
var y = parseInt(x, 10); // specify radix to prevent unpredictable behavior 
+0

"Un numero intero che rappresenta la radice della stringa sopra menzionata. * Specificare sempre * questo parametro per eliminare la confusione del lettore e * per garantire un comportamento prevedibile *. Diverse implementazioni producono risultati diversi quando una radix non è specificata ". https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/parseInt –

+0

A causa di alcuni problemi con IE potresti trovare parseFloat è meglio. Questo perché IE utilizza pixel parziali, come 27.86 anziché 28. – Teegan

2

Utilizzando il metodo String.replace() è un modo semplice:

http://www.w3schools.com/jsref/jsref_replace.asp

+0

Perché il downvote? Posso pensare a diversi posti dove parseInt e parseFloat sono troppo schizzinosi per uso generale. –

+0

Eh sì, lo stesso utente ha anche messo in votazione la domanda insieme alla mia risposta prima che Alex Reitbort abbia dato la sua risposta. Probabilmente solo un utente malintenzionato: P –

0

È meglio usare parseFloat()

Nelle situazioni in cui si hanno i decimali, come 0.5s per la transizione di ritardo, parseInt (x, 10) restituisce zero, dove in contrasto restituisce parseFloat() 0,5

var x = "0.5s"; 
var y = parseFloat(x); //returns 0.5 
+0

La domanda riguarda specificamente i pixel ('0.5px' non è comune come' 0.5s'). –

4

Opzione 1:

parseInt('200px', 10); 

La funzione parseInt() analizza una stringa e restituisce un intero. Non modificare i 10 trovati nella funzione sopra (nota come "radix") a meno che tu non sappia cosa stai facendo.

uscita sarà: 200.

Opzione 2(io personalmente preferisco questa opzione)

parseFloat('200px') 

uscita sarà: 200

Il parseFloat (La funzione analizza una stringa e restituisce un numero in virgola mobile.

La funzione parseFloat() determina se il primo carattere nella stringa specificata è un numero. Se lo è, analizza la stringa fino a raggiungere la fine del numero e restituisce il numero come numero, non come stringa.

Il vantaggio dell'opzione 2 è che se si utilizzano numeri decimali (ad esempio 200.32322px) si otterrà il numero restituito con i valori dietro il punto decimale. Utile se hai bisogno di numeri specifici restituiti.

Problemi correlati