--- title: parseFloat() slug: Web/JavaScript/Reference/Global_Objects/parseFloat translation_of: Web/JavaScript/Reference/Global_Objects/parseFloat ---
{{jsSidebar("Objects")}}

Sommario

La funzione parseFloat()  riceve una stringa come argomento e ritorna un numero in virgola mobile.

Sintassi

parseFloat(string)

Parametri

string
Una stringa che rapprestena il valore da analizzare.

Descrizione

parseFloat è 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).

Esempi

Esempio: parseFloat ritorna un numero

Tutti gli esempi seguenti ritornano 3.14

parseFloat("3.14");
parseFloat("314e-2");
parseFloat("0.0314E+2");
parseFloat("3.14altri caratteri non numerici");

Esempio: parseFloat ritorna NaN

L'esempio seguente ritorna il valore NaN

parseFloat("FF2");

Una funzione di analisi più approfondita.

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+

Specifiche

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')}}  

Compatibilità Browser

{{ 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() }}

Leggi anche: