Двойные значения округляются при их отображении, поэтому они отображают несколько цифр, не превышая предела их емкости (чтобы ошибка округления не отображалась).Хотя значения выглядят одинаково, на самом деле они не имеют одно и то же значение.
Вы можете рассчитать значение и затем отобразить его в формате туда и обратно:
value.ToString("r")
Когдатекстовое представление, созданное таким образом, анализируется, гарантированно генерируется то же двойное значение, которое его создавало.Вы можете вставить это в код, и он даст вам точное совпадение.
Однако, как правило, двойные значения не следует сравнивать для точного равенства, поскольку у вас редко бывает ситуация, подобная этой, где вы на самом деле хотите получить точноематч.Кроме того, тестирование на точное совпадение может быть не тем, что вы на самом деле хотите в этой ситуации, так как оно зависит от того, какая реализация осталась прежней.Если бы вы использовали другой алгоритм, он дал бы другие ошибки округления, давая немного другой результат.