Il presente articolo è stato tradotto automaticamente. Passare il puntatore sulle frasi nell'articolo per visualizzare il testo originale. Ulteriori informazioni.
Traduzione
Originale
Questo argomento non è stato ancora valutato - Valuta questo argomento

Campo Double.Epsilon

Rappresenta il valore Double positivo più piccolo maggiore di zero. Il campo è costante.

Spazio dei nomi:  System
Assembly:  mscorlib (in mscorlib.dll)
public const double Epsilon

Il valore della proprietà Epsilon riflette il più piccolo valore Double positivo che è significativo in operazioni o confronti numeriche quando il valore dell'istanza Double è zero. Ad esempio, il codice seguente mostra che zero e Epsilon sono considerati valori disuguali, mentre zero e la metà del valore di Epsilon sono considerati uguali.


using System;

public class Example
{
   public static void Main()
   {
      double[] values = { 0, Double.Epsilon, Double.Epsilon * .5 };

      for (int ctr = 0; ctr <= values.Length - 2; ctr++)
      {
         for (int ctr2 = ctr + 1; ctr2 <= values.Length - 1; ctr2++)
         {
            Console.WriteLine("{0:r} = {1:r}: {2}", 
                              values[ctr], values[ctr2],  
                              values[ctr].Equals(values[ctr2]));
         }
         Console.WriteLine();
      }      
   }
}
// The example displays the following output:
//       0 = 4.94065645841247E-324: False
//       0 = 0: True
//       
//       4.94065645841247E-324 = 0: False


Tuttavia, la proprietà Epsilon non è una misura generale di precisione del tipo Double; si applica solo a istanze Double che hanno un valore zero.

NotaNota

Il valore della proprietà Epsilon non è equivalente a epsilon del computer che rappresenta il limite superiore dell'errore relativo a causa dell'arrotondando in operazioni aritmetiche su valori a virgola mobile.

Il valore di questa costante è 4,94065645841247e-324.

Due numeri a virgola mobile apparentemente equivalenti potrebbero non risultare uguali a causa delle differenze nelle cifre meno significative. Nell'espressione C# (double)1/3 == (double)0.33333, ad esempio, i due valori numerici non risultano uguali in quanto l'operazione di divisione a sinistra ha una precisione massima, mentre la precisione della costante a destra è limitata alle cifre specificate. Per creare un algoritmo personalizzato che determina se due numeri a virgola mobile possono essere considerati uguali, è necessario utilizzare un valore superiore alla costante Epsilon per stabilire il margine di differenza assoluto accettabile per i due valori da considerare uguali. In genere, il margine di differenza è ampiamente superiore rispetto a Epsilon.

Note della piattaforma

Nei sistemi di monitoraggio ARM, il valore della costante Epsilon è troppo piccolo rilevato, pertanto è uguale a zero. È possibile definire un valore epsilon alternativo che equivale a 2.2250738585072014E-308 anziché.

.NET Framework

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

.NET Framework Client Profile

Supportato in: 4, 3.5 SP1

Libreria di classi portabile

Supportato in: Libreria di classi portabile

.NET per applicazioni Windows Store

Supportato in: Windows 8

Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (ruoli di base del server non supportati), Windows Server 2008 R2 (ruoli di base del server supportati con SP1 o versione successiva, Itanium non supportato)

.NET Framework non supporta tutte le versioni di ciascuna piattaforma. Per un elenco delle versioni supportate, vedere Requisiti di sistema di .NET Framework.
Il documento è risultato utile?
(1500 caratteri rimanenti)

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?
© 2013 Microsoft. Tutti i diritti riservati.