使用 Contains 方法检查 List 中的 float 时的 C# 准确性

2024-01-25

我有一个清单floats 并想要检查它是否已经包含特定值List.Contains()方法。我知道对于float您经常无法使用的相等性测试==但类似的东西myFloat - value < 0.001.

我的问题是,Contains方法说明了这一点,或者我需要使用一种说明方法float用于测试浮点数是否在列表中的精度错误?


从文档中List(T).Contains https://msdn.microsoft.com/en-us/library/bhkz42b3(v=vs.110).aspx:

此方法通过使用默认的相等比较器来确定相等性,该比较器由对象的实现所定义IEquatable<T>.Equals https://msdn.microsoft.com/en-us/library/ms131190(v=vs.110).aspxT 的方法(列表中值的类型)。

因此,您需要自己处理与阈值的比较。例如,您可以使用自己的自定义相等比较器。像这样的事情:

public class FloatThresholdComparer : IEqualityComparer<float>
{
    private readonly float _threshold;
    public FloatThresholdComparer(float threshold)
    {
        _threshold = threshold;
    }

    public bool Equals(float x, float y)
    {
        return Math.Abs(x-y) < _threshold;
    }

    public int GetHashCode(float f)
    {
        throw new NotImplementedException("Unable to generate a hash code for thresholds, do not use this for grouping");
    }
}

并使用它:

var result = floatList.Contains(100f, new FloatThresholdComparer(0.01f))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Contains 方法检查 List 中的 float 时的 C# 准确性 的相关文章

随机推荐

  • Android 保存游戏状态

    我不确定应该如何保存我正在开发的游戏的游戏状态 我应该保存包含所有游戏信息的实例 对象吗 如果是 怎么办 或者我应该将所有相关信息保存在 txt 文件中并在需要时保存 加载信息 您是如何做到这一点的 您对我的建议有何看法 除非将实例 对象序
  • 如何在postgres中将整数分钟转换为间隔

    我正在尝试将整数分钟转换为 postgres 中的间隔 是否有任何函数可以帮助我将其转换为间隔 或者我应该将其除以 60 并得到最终结果 20 minutes will be like 00 20 00 as result 最快的方法是与m
  • Firefox 和 Chrome 中的文本区域填充不一致

    我的文本区域元素上有填充 我希望当您在文本区域内滚动时内容保持填充状态 它在 Firefox 中按预期工作 但在 Chrome 中却不然 下图显示了输出的差异 CSS textarea width 250px height 160px pa
  • 在 C++ 中计算字符串的算术表达式[重复]

    这个问题在这里已经有答案了 我正在寻找一种简单的方法来计算字符串中的简单数学表达式 如下所示 3 2 4 1 4 9 6 我只是想 and 运营加 and 迹象 和 优先级高于 可以尝试一下 http partow net programm
  • 为什么 CV::Mat 图像的颜色空间错误(GBR 而不是 RGB 或 BGR)?

    我有一个 Python 模块 它将 RGB 发送到 C 并在那里被消耗 然而 无论我做什么 图像都有错误的色彩空间 那是我试图将其转换为RGB 假设它仍然在 BGR 中 尽管在 python 中它故意通过执行以下操作转换为 RGB retu
  • 在 C# 中使用反应式扩展时如何显示进度

    我在 C 中使用反应式扩展来执行一些计算 这是我的代码到目前为止的样子 我尝试将代码包装起来 以便在计算方法中执行一系列任务时可以显示进度 这是可观察到的 IObservable
  • LINQ 表达式语法如何与 Include() 一起使用以进行预加载

    我在下面有一个查询 但我想执行 Include 来急切加载属性 Actions 有一个导航属性 User Action User 1 我的基本查询 from a in Actions join u in Users on a UserId
  • 在使用 SQL Server 数据库邮件创建的电子邮件中嵌入图像

    我正在仅在 SQL Server 中开发电子邮件解决方案 该解决方案将使用数据库邮件发送 HTML 格式的电子邮件 问题是 HTML 中的图像需要嵌入到外发电子邮件中 如果我使用 net 应用程序来生成和发送电子邮件 这不会成为问题 但不幸
  • 用于验证带扩展名的 Windows 和 Linux 路径的正则表达式

    我正在尝试编写一个函数 该函数将验证给定路径在带有文件扩展名的 Linux Windows 中是否有效 ex Windows路径 D DATA My Project 01 07 03 061418738709443 docLinux路径 s
  • PHP 中的文件夹作为参数

    我想创建一个脚本 将网站中请求的每个文件夹作为参数传递 例如 如果有人请求 www example com foo 这将被重定向到主index php并作为参数传递 在请求时得到相同的结果www example com index php
  • Java中如何实现并发读取映射到内存的文件?

    我有很多线程同时读取同一个文件 总共大约100M 并且只有一个线程更新文件 我想将文件映射到内存中以减少FILE I O 在 Java 中如何做到这一点 我基本上考虑了以下2种方法 用字节数组存储文件 多线程读取时每次创建ByteArray
  • 为什么 CarPlay 在真车上会崩溃?

    我有一个音频应用程序并已实现 CarPlay 我已按照本指南添加 CarPlay 支持 https blog fethica com add carplay support to swiftradio https blog fethica
  • 您在开发中如何处理 SSL?

    我有一个应用程序 它的一些路由与ssl 要求 http github com rails ssl requirement插入 它已部署并且在生产中运行良好 问题是如何在开发中最好地处理这个问题 因为目前我只是简单地破解我的routes rb
  • 使用php从h1标签获取所有值

    我想接收一个包含文本中所有 h1 标签值的数组 例如 如果给定的输入字符串 h1 hello h1 p random text p h1 title number two h1 我需要接收一个包含以下内容的数组 titles 0 hello
  • SQL Reporting Services - Mozilla 中未显示打印按钮

    我在用SQL 报告服务 它工作正常并显示打印按钮IE 但在 Mozilla Firefox 中未显示 有人有什么主意吗 我已经检查过这个解决方案 但它不起作用 http social msdn microsoft com Forums en
  • 网络直径是什么意思?

    上图所示这个链接 http en wikipedia org wiki Vertex 28graph theory 29的 具有 6 个顶点和 7 个边的图 其中最左侧的 6 号顶点是叶顶点或下垂顶点 有直径4吗 对还是错 定义是 图的直径
  • Sequelize关系查询返回重复数据

    我正在使用 Sequelize 关系查询指定客户的客户订单 index js var results2 await customerService getOrders 1 console log results2 服务 js exports
  • Firefox 中的大子字符串比 Chrome 快约 9000 倍:为什么?

    基准 http jsperf com substringing http jsperf com substringing 因此 我正在启动我的第一个基于 HTML5 浏览器的客户端项目 本质上 它必须将非常非常大的文本文件解析为一个或多个对
  • 同时使用 INADDR_ANY 和特定 IP 绑定到同一端口

    python 中的一个简单实验 在 Windows 上 表明我能够同时绑定到通配符地址和特定地址上的同一端口 import socket import select MY PORT 13337 sany socket socket sany
  • 使用 Contains 方法检查 List 中的 float 时的 C# 准确性

    我有一个清单floats 并想要检查它是否已经包含特定值List Contains 方法 我知道对于float您经常无法使用的相等性测试 但类似的东西myFloat value lt 0 001 我的问题是 Contains方法说明了这一点