for (int i = 0; i < iMatrix1.Count(); i++)
{
if (Math.Abs(iMatrix1[i]) > 1E-20 & Math.Abs(iMatrix1[i]) < 0.0001) { oArrayList.Add(0); }
else { oArrayList.Add(iMatrix1[i]); }
}
也许只是疲倦的眼睛...但是,我在这里没有得到我预期的结果。我试图消除给定公差下限以外的错误数字。 (这意味着,如果它们超出我要定义的范围,则需要将它们处理为零)
由于某种原因,它还在更改此下限之外的数字。
我确定这只是一个愚蠢的错误。请让我挺直。
我对iMatrix [i]的返回值= -0.000000000000000055
显然,0.00000000000000000001
再次,我确定这只是一个愚蠢的疏忽……但此刻正在杀了我。
Mhan7,如果我正确理解您,您正在尝试这样做?
var a = 0.00000000000000000001;
var b = -0.000000000000000055;
var c = .00001;
Console.WriteLine($"a={c},b={b},c={c} | a < b = { a < Math.Abs(b)} | c > b = { c > Math.Abs(b)}");
if (Math.Abs(b) > a & Math.Abs(b) < c)
{
Console.WriteLine("True");
}
可以在您的计算机上使用吗-我使用了与您相同的条件。似乎上面的内容验证了您的代码正确,又返回了:
a