FloatingPointNumerics Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Rutinas auxiliares para trabajar con números de punto flotante
public class FloatingPointNumerics
type FloatingPointNumerics = class
- Herencia
-
FloatingPointNumerics
Comentarios
El código de comparación de punto flotante se basa en este excelente artículo: https://www.cygnus-software.com/papers/comparingfloats/comparingfloats.htm
"ULP" significa Unidad en el último lugar y en el contexto de esta biblioteca hace referencia a la distancia entre dos números de punto flotante adyacentes. Los números de punto flotante IEEE solo pueden representar un subconjunto finito de números naturales, con mayor precisión para números más pequeños y una menor precisión para números muy grandes.
Si se permite una comparación "2 ulps" de desviación, significa que los valores se pueden desviar hasta 2 valores de punto flotante adyacentes, que pueden ser tan bajos como 0,0000001 para números pequeños o tan altos como 10,0 para números grandes.
Métodos
AreAlmostEqualUlps(Double, Double, Int64) |
Compara dos valores de punto flotante de precisión doble para la igualdad |
AreAlmostEqualUlps(Single, Single, Int32) |
Compara dos valores de punto flotante para la igualdad |
ReinterpretAsDouble(Int64) |
Reinterpreta el contenido de memoria de un valor entero como un valor de punto flotante de precisión doble. |
ReinterpretAsFloat(Int32) |
Reinterpreta el contenido de memoria de un entero como un valor de punto flotante. |
ReinterpretAsInt(Single) |
Reinterpreta el contenido de memoria de un valor de punto flotante como un valor entero. |
ReinterpretAsLong(Double) |
Reinterpreta el contenido de memoria de un valor de punto flotante de precisión doble como un valor entero. |