--- title: parseFloat() slug: Web/JavaScript/Reference/Global_Objects/parseFloat translation_of: Web/JavaScript/Reference/Global_Objects/parseFloat ---
La funzione parseFloat() riceve una stringa come argomento e ritorna un numero in virgola mobile.
parseFloat(string)
stringparseFloat è una funzione primo livello ( globale ) e non è associata con nessun oggetto.
parseFloat analizza il parametro rappresentato da una stringa e ritorna un numero in virgola mobile. Se rileva un carattere diverso da segni ( + o - ), numeri ( 0 - 9 ), punto di separazione decimale o un esponente, la funzione ritorna il valore fino a quel punto ignorando il carattere rilevato e tutti quelli successvi. Gli spazi bianchi, iniziali e finali, sono consentiti.
Se il primo carattere dell'argomento non può essere analizzato, parseFloat ritorna NaN.
Per questioni aritmetiche, il valore NaN non è di tipo numerico. Per determinare se il risultato di ParseFloat è NaN occorre chiamare la funzione {{jsxref("Global_Objects/isNaN", "isNaN")}}. Se NaN viene utilizzato per un operazione aritmetica, la stessa risulterà NaN.
parseFloat può analizzare e ritornare il valore Infinity. La funzione {{jsxref("Global_Objects/isNaN", "isNaN")}} consente di determinare se il risultato è un numero finito (not Infinity, -Infinity, o NaN).
parseFloat ritorna un numeroTutti gli esempi seguenti ritornano 3.14
parseFloat("3.14");
parseFloat("314e-2");
parseFloat("0.0314E+2");
parseFloat("3.14altri caratteri non numerici");
parseFloat ritorna NaNL'esempio seguente ritorna il valore NaN
parseFloat("FF2");
Talvolta può essere necessario un maggior controllo sulla funzione di parse, le regular expression possono aiutare :
var filterFloat = function (value) {
if(/^(\-|\+)?([0-9]+(\.[0-9]+)?|Infinity)$/
.test(value))
return Number(value);
return NaN;
}
console.log(filterFloat('421')); // 421
console.log(filterFloat('-421')); // -421
console.log(filterFloat('+421')); // 421
console.log(filterFloat('Infinity')); // Infinito
console.log(filterFloat('1.61803398875')); // 1.61803398875
console.log(filterFloat('421e+0')); // NaN
console.log(filterFloat('421hop')); // NaN
console.log(filterFloat('hop1.61803398875')); // NaN
Nota: questo codice è a scopo esplicativo. La funzione non accetta numeri validi come 1. o .5+
| Specifica | Stato | Commento |
|---|---|---|
| ECMAScript 1a Edizione. | Standard | Definizione iniziale. |
| {{SpecName('ES5.1', '#sec-15.1.2.3', 'parseFloat')}} | {{Spec2('ES5.1')}} | |
| {{SpecName('ES6', '#sec-parsefloat-string', 'parseFloat')}} | {{Spec2('ES6')}} |
{{ CompatibilityTable() }}
| Feature | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
|---|---|---|---|---|---|
| Basic support | {{ CompatVersionUnknown() }} | {{ CompatVersionUnknown() }} | {{ CompatVersionUnknown() }} | {{ CompatVersionUnknown() }} | {{ CompatVersionUnknown() }} |
| Feature | Android | Chrome for Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
|---|---|---|---|---|---|---|
| Basic support | {{ CompatVersionUnknown() }} | {{ CompatVersionUnknown() }} | {{ CompatVersionUnknown() }} | {{ CompatVersionUnknown() }} | {{ CompatVersionUnknown() }} | {{ CompatVersionUnknown() }} |