Questa pagina è stata utile?
I suggerimenti relativi al contenuto di questa pagina sono importanti. Comunicaceli.
Altri suggerimenti?
1500 caratteri rimanenti
Esporta (0) Stampa
Espandi tutto

Struttura Single

Aggiornamento: novembre 2007

Rappresenta un numero a virgola mobile e precisione singola.

Spazio dei nomi:  System
Assembly:  mscorlib (in mscorlib.dll)

[SerializableAttribute]
[ComVisibleAttribute(true)]
public struct Single : IComparable, IFormattable, 
	IConvertible, IComparable<float>, IEquatable<float>
/** @attribute SerializableAttribute */ 
/** @attribute ComVisibleAttribute(true) */
public final class Single extends ValueType implements IComparable, 
	IFormattable, IConvertible, IComparable<float>, IEquatable<float>
JScript supporta l'utilizzo di strutture ma non la dichiarazione di nuove.

Il tipo di valore Single rappresenta un numero a 32 bit a precisione singola con valori compresi tra 3,402823e38 negativo e 3,402823e38 positivo, oltre a zero positivo o negativo, PositiveInfinity, NegativeInfinity e valori non numerici (NaN).

Single è conforme allo standard IEC 60559:1989 (IEEE 754) per il calcolo binario a virgola mobile.

Single fornisce metodi per confrontare istanze di questo tipo, convertire il valore di un'istanza nella relativa rappresentazione in forma di stringa e convertire la rappresentazione in forma di stringa di un numero in un'istanza di questo tipo. Per informazioni su come la rappresentazione in forma di stringa dei tipi di valore è controllata dai codici di specifica del formato, vedere Cenni preliminari sulla formattazione, Stringhe di formato numerico standard e Stringhe di formato numerico personalizzato.

Utilizzo dei numeri a virgola mobile

Quando si eseguono operazioni binarie, se uno degli operandi è un tipo a virgola mobile, Single o Double, l'altro operando deve essere un tipo integrale o a virgola mobile. L'operazione è valutata nel modo seguente:

  • Se uno degli operandi è di tipo integrale, viene convertito nel tipo a virgola mobile dell'altro operando.

  • Quindi, se uno degli operandi è Double, l'altro operando è convertito in Double e l'operazione viene eseguita utilizzando almeno l'intervallo e la precisione di Double. Per le operazioni numeriche, il risultato è del tipo Double.

  • In caso contrario, l'operazione viene eseguita utilizzando almeno l'intervallo e la precisione del tipo Single e per le operazioni numeriche il tipo del risultato è Single.

Gli operatori a virgola mobile, fra cui gli operatori di assegnazione, non generano eccezioni. In situazioni eccezionali invece il risultato di un'operazione a virgola mobile è zero, infinito o NaN come descritto in precedenza:

  • Se il risultato di un'operazione a virgola mobile è troppo piccolo per il formato di destinazione, il risultato dell'operazione è zero.

  • Se l'ordine di grandezza del risultato di un'operazione a virgola mobile è troppo grande per il formato di destinazione, il risultato dell'operazione è PositiveInfinity o NegativeInfinity, a seconda del segno del risultato.

  • Se l'operazione a virgola mobile non è valida, il risultato dell'operazione è NaN.

  • Se uno o più operandi di un'operazione a virgola mobile sono NaN, il risultato dell'operazione è NaN.

Tenere presente che un numero a virgola mobile può solo approssimare un numero decimale e che la precisione di un numero a virgola mobile determina il grado di accuratezza che approssima un numero decimale. Per impostazione predefinita, il valore Single contiene solo 7 cifre decimali di precisione, anche se internamente vengono mantenute fino a 9 cifre. La precisione di un numero a virgola mobile comporta diverse conseguenze:

  • Due numeri a virgola mobile apparentemente equivalenti per una particolare precisione potrebbero non risultare uguali a causa di differenze nelle cifre meno significative.

  • Un'operazione matematica o di confronto in cui si utilizza un numero a virgola mobile potrebbe non restituire lo stesso risultato se viene utilizzato un numero decimale, perché il numero a virgola mobile potrebbe non approssimare esattamente il numero decimale.

  • Un valore potrebbe non completare la sequenza di andata e ritorno se è coinvolto un numero a virgola mobile. La sequenza di andata e ritorno di un valore viene eseguita se un'operazione converte un numero a virgola mobile originale in un altro formato, un'operazione inversa trasforma il formato convertito nuovamente in un numero a virgola mobile e il numero a virgola mobile finale è uguale al numero a virgola mobile originale. Questa operazione potrebbe non riuscire perché una o più cifre meno significative vengono perse o modificate in una conversione.

Implementazioni di interfacce

Questo tipo implementa le interfacce IComparable, IComparable<T>, IFormattable e IConvertible. Utilizzare la classe Convert per le conversioni anziché l'implementazione del membro esplicito dell'interfaccia IConvertible di questo tipo.

Tutti i membri di questo tipo sono thread-safe. I membri che sembrano modificare lo stato dell'istanza restituiscono in realtà una nuova istanza inizializzata con il nuovo valore. Come con qualsiasi altro tipo, le operazioni di lettura e scrittura su una variabile condivisa che contiene un'istanza di questo tipo devono essere protette da un blocco per garantire che siano thread-safe.

Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition , Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98, Windows CE, Windows Mobile per Smartphone, Windows Mobile per Pocket PC, Xbox 360

.NET Framework e .NET Compact Framework non supportano tutte le versioni di ciascuna piattaforma. Per un elenco delle versioni supportate, vedere Requisiti di sistema di .NET Framework.

.NET Framework

Supportato in: 3.5, 3.0, 2.0, 1.1, 1.0

.NET Compact Framework

Supportato in: 3.5, 2.0, 1.0

XNA Framework

Supportato in: 2.0, 1.0

Aggiunte alla community

AGGIUNGI
Microsoft sta conducendo un sondaggio in linea per comprendere l'opinione degli utenti in merito al sito Web di MSDN. Se si sceglie di partecipare, quando si lascia il sito Web di MSDN verrà visualizzato il sondaggio in linea.

Si desidera partecipare?
Mostra:
© 2015 Microsoft