1
我观察到一个(对我来说)C#(.Net 4.6.1)中带有浮点变量的奇怪问题。双舍入错误,无需计算
我有一个自己的简单的Point类:
public class Point
{
public readonly double X;
public readonly double Y;
public Point(double x, double y)
{
this.X = x;
this.Y = y;
}
//...
}
并与包含-方法的Rectangle类。有时 - 很难重现 - 当我将Point对象传递给Rectangle对象的Contains方法时,X或Y的值不相同。变量之间没有任何计算或其他变化。获取变量值。在caling方法中,值是OK,并且在调用的方法内,该值具有舍入误差。
这里有什么问题? 为什么在被调用的方法中有另一个值?
最后,数值没有变化。所以在调用方法中,以后的值仍然可以。
在此先感谢!
Maas
听起来像它几乎肯定只是调试器中的显示差异。我怀疑如果你试图找到*确切的*值,你会发现它保持不变。 (例如,如果展开'intersectionPoint',或者显示'intersectionPoint.Y.ToString(“r”)'?) –
是的,是我的错。我没有扩大“intersectionPoint”。 *耻* :) 我以为ToString方法显示的是完整的值。 ToString - > return $“{this.X}; {this.Y}”; – Maas