视情况如果未按预期返回

问题描述 投票:0回答:1
        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

再次,我确定这只是一个愚蠢的疏忽……但此刻正在杀了我。

visual-studio-2013 conditional-statements boolean-expression c#-7.0 boolean-operations
1个回答
0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.