Condividi tramite


FloatingPointNumerics Classe

Definizione

Routine helper per l'uso dei numeri a virgola mobile

public class FloatingPointNumerics
type FloatingPointNumerics = class
Ereditarietà
FloatingPointNumerics

Commenti

Il codice di confronto a virgola mobile si basa su questo articolo eccellente: https://www.cygnus-software.com/papers/comparingfloats/comparingfloats.htm

"ULP" indica Unità nell'ultimo posto e nel contesto di questa libreria fa riferimento alla distanza tra due numeri a virgola mobile adiacenti. I numeri a virgola mobile IEEE possono rappresentare solo un subset finito di numeri naturali, con maggiore accuratezza per numeri più piccoli e precisione inferiore per numeri molto grandi.

Se un confronto è consentito "2 ulps" di deviazione, ciò significa che i valori possono essere deviati da un massimo di 2 valori a virgola mobile adiacenti, che potrebbero essere pari a 0,0000001 per numeri piccoli o fino a 10,0 per numeri di grandi dimensioni.

Metodi

AreAlmostEqualUlps(Double, Double, Int64)

Confronta due valori a virgola mobile a precisione doppia per l'uguaglianza

AreAlmostEqualUlps(Single, Single, Int32)

Confronta due valori a virgola mobile per l'uguaglianza

ReinterpretAsDouble(Int64)

Reinterpreta il contenuto della memoria di un valore integer come valore a virgola mobile a precisione doppia

ReinterpretAsFloat(Int32)

Reinterpreta il contenuto della memoria di un intero come valore a virgola mobile

ReinterpretAsInt(Single)

Reinterpreta il contenuto della memoria di un valore a virgola mobile come valore intero

ReinterpretAsLong(Double)

Reinterpreta il contenuto della memoria di un valore a virgola mobile a precisione doppia come valore intero

Si applica a