Поделиться через


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)

Повторно интерпретирует содержимое памяти значения двойной точности с плавающей запятой как целочисленное значение.

Применяется к