FloatingPointNumerics Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Вспомогательные процедуры для работы с числами с плавающей запятой
public class FloatingPointNumerics
type FloatingPointNumerics = class
- Наследование
-
FloatingPointNumerics
Комментарии
Код сравнения с плавающей запятой основан на этой отличной статье: https://www.cygnus-software.com/papers/comparingfloats/comparingfloats.htm
"ULP" означает единицу в последнем месте, а в контексте этой библиотеки относится к расстоянию между двумя смежными числами с плавающей запятой. Числа с плавающей запятой IEEE могут представлять только конечное подмножество натуральных чисел с большей точностью для небольших чисел и более низкой точностью для очень больших чисел.
Если сравнение допускается "2 ulps" отклонения, это означает, что значения могут отклоняться до 2 смежных значений с плавающей запятой, которые могут быть ниже 0,0000001 для небольших чисел или до 10,0 для больших чисел.
Методы
AreAlmostEqualUlps(Double, Double, Int64) |
Сравнивает два значения двойной точности с плавающей запятой на равенство |
AreAlmostEqualUlps(Single, Single, Int32) |
Сравнивает два значения с плавающей запятой на равенство |
ReinterpretAsDouble(Int64) |
Повторно интерпретирует содержимое памяти целочисленного значения как значение двойной точности с плавающей запятой |
ReinterpretAsFloat(Int32) |
Повторно интерпретирует содержимое памяти целого числа как значение с плавающей запятой |
ReinterpretAsInt(Single) |
Повторно интерпретирует содержимое памяти значения с плавающей запятой как целочисленное значение. |
ReinterpretAsLong(Double) |
Повторно интерпретирует содержимое памяти значения двойной точности с плавающей запятой как целочисленное значение. |