Condividi tramite


float (Riferimenti per C#)

Aggiornamento: novembre 2007

La parola chiave float indica un tipo semplice che archivia valori a virgola mobile a 32 bit. Nella tabella riportata di seguito sono indicati l'intervallo approssimativo e il grado di precisione del tipo float.

Tipo

Intervallo approssimativo

Precisione

Tipo .NET Framework

float

±1.5 × 10−45 a ±3,4 × 1038

7 cifre

System.Single

Valori letterali

Per impostazione predefinita, un valore letterale numerico reale a destra dell'operatore di assegnazione viene gestito come tipo double. Per inizializzare una variabile float è quindi necessario utilizzare il suffisso f o F, come illustrato di seguito.

float x = 3.5F;

Se nella precedente dichiarazione non si utilizza il suffisso, verrà generato un errore di compilazione poiché si sta tentando di archiviare un valore double in una variabile float.

Conversioni

È possibile combinare tipi integrali numerici e tipi a virgola mobile in una stessa espressione. In questo caso i tipi integrali vengono convertiti in tipi a virgola mobile. La valutazione dell'espressione viene eseguita in base ai criteri descritti di seguito.

  • Se uno dei tipi a virgola mobile è double, l'espressione darà come risultato un valore double o bool nel caso di espressioni relazionali o booleane.

  • Se l'espressione non contiene alcun tipo double, darà come risultato un valore float o bool nel caso di espressioni relazionali o booleane.

Un'espressione a virgola mobile può contenere i seguenti insiemi di valori:

  • Zero positivo e negativo

  • Infinito positivo e negativo

  • Valore NaN (non numerico)

  • L'insieme finito di valori diversi da zero

Per ulteriori informazioni su questi valori, vedere lo standard IEEE per l'aritmetica a virgola mobile binaria, disponibile sul sito Web IEEE.

Esempio

Nell'esempio riportato di seguito le parole chiave int, short e float sono incluse in un'espressione matematica che dà come risultato un valore float. Ricordare che float è un alias per il tipo System.Single. Si noti che double non è presente nell'istruzione.

class FloatTest 
{
    static void Main() 
    {
        int x = 3;
        float y = 4.5f;
        short z = 5;
        var result = x * y / z;
        Console.WriteLine("The result is {0}", result);
        Type type = result.GetType();
        Console.WriteLine("result is of type {0}", type.ToString());
    }
}
/* Output: 
  The result is 2.7
  result is of type System.Single //'float' is alias for 'Single'
 */

Specifiche del linguaggio C#

Per ulteriori informazioni, vedere le sezioni riportate di seguito in Specifiche del linguaggio C#:

  • 4.1.6 Tipi a virgola mobile

  • 6.2.1 Conversioni numeriche esplicite

Vedere anche

Concetti

Guida per programmatori C#

Riferimenti

Parole chiave di C#

Tabella dei tipi integrali (Riferimenti per C#)

Tabella dei tipi incorporati (Riferimenti per C#)

Tabella delle conversioni numeriche implicite (Riferimenti per C#)

Tabella delle conversioni numeriche esplicite (Riferimenti per C#)

Single

Altre risorse

Riferimenti per C#