c# - 我如何检查 double 组是否包含 C# 中的某个 double

标签 c# double

我现在正在使用这段代码

        double[] LocationsDown = { 40, 85, 130, 175, 220, 265, 310, 355 };
        double[] LocationsUp = { 50, 95, 140, 185, 230, 275, 320, 5 };
        double curretangle = Math.Round(targetAngle);

        if (LocationsDown == curretangle) // <- Compile Time Error here
        {
            //thing
        }

但是它说的是

" Operator '==' cannot be applied to operands of type 'double[]' and 'double' "

我不明白检查数组是否包含所述 double 的正确方法我觉得这将是一个简单的修复方法,我只是无法确定。

最佳答案

一般情况中,我们必须将double 值与一些容差 进行比较:

 if (Math.Abs(someValue - valueToCheck) <= tolerance) {...}

在处理集合时,我们可以使用Linq 来查询它们:

 using System.Linq;

 ...

 double tolerance = 1e-6; 

 bool contains = LocationsDown.Any(item => Math.Abs(item - curretangle) <= tolerance);

关于c# - 我如何检查 double 组是否包含 C# 中的某个 double ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63023196/

相关文章:

c# - 按钮点击和回发问题

c - 在 C 上定义 LDBL_MAX/MIN

c# - 对这些开放 ID 的工作方式感到困惑

c++ - 添加 double 精度损失?

C 学生作业, ‘%f’ 需要类型为 ‘float *’ 的参数,但参数 2 的类型为 ‘double *’

c - 将 float 输入到仅处理整数的程序中

java - 带有 DecimalFormat 的 RoundingMode.UP 无法按预期工作

c# - TargetFramework 与 TargetFrameworks(复数)

c# - Paypal 中的自适应延迟链式支​​付 - 部分退款

c# - MySQL asp.net 字符集不能正常工作