FloatingPointNumerics Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Rotinas auxiliares para trabalhar com números de ponto flutuante
public class FloatingPointNumerics
type FloatingPointNumerics = class
- Herança
-
FloatingPointNumerics
Comentários
O código de comparação de ponto flutuante baseia-se neste excelente artigo: https://www.cygnus-software.com/papers/comparingfloats/comparingfloats.htm
"ULP" significa Unidade no Último Lugar e, no contexto dessa biblioteca, refere-se à distância entre dois números de ponto flutuante adjacentes. Os números de ponto flutuante IEEE só podem representar um subconjunto finito de números naturais, com maior precisão para números menores e menor precisão para números muito grandes.
Se uma comparação for permitida "2 ulps" de desvio, isso significa que os valores têm permissão para desviar em até 2 valores de ponto flutuante adjacentes, o que pode ser tão baixo quanto 0,0000001 para números pequenos ou até 10,0 para números grandes.
Métodos
AreAlmostEqualUlps(Double, Double, Int64) |
Compara dois valores de ponto flutuante de precisão dupla quanto à igualdade |
AreAlmostEqualUlps(Single, Single, Int32) |
Compara dois valores de ponto flutuante quanto à igualdade |
ReinterpretAsDouble(Int64) |
Reinterpreta o conteúdo de memória de um valor inteiro como um valor de ponto flutuante de precisão dupla |
ReinterpretAsFloat(Int32) |
Reinterpreta o conteúdo de memória de um inteiro como um valor de ponto flutuante |
ReinterpretAsInt(Single) |
Reinterpreta o conteúdo de memória de um valor de ponto flutuante como um valor inteiro |
ReinterpretAsLong(Double) |
Reinterpreta o conteúdo de memória de um valor de ponto flutuante de precisão dupla como um valor inteiro |