Я проводил какое-то модульное тестирование на работе, и для одного из утверждений выявилась странная ошибка. Обратите внимание, что Ожидаемые значения и фактические значения являются значениями типа double.
Assert.AreEqual(expectedValue, actualValue);
В исключении указано, что они не равны, уточнив, что "ожидаемое значение: <6,8> фактическое значение: <6,8>."
Ожидаемое значение является жестко закодированным 6,8, а фактическое значение формулируется с использованием значений базы данных, проходящих через наши методы классификации (такие как Equal Records или Jenks Natural Breaks).
Я предполагаю, что разница, вероятно, состоит в том, что мантиссы двух значений схожи до младшего значащего бита. Я обновил тесты, добавив в них эпсилон, чтобы определить, достаточно ли близки эти два значения, но мне любопытно, есть ли способ заставить мантиссу совпадать с отображаемым значением, если я отобразил этот двойной. Существует ли такая коррекция мантиссы?