What is the best way to compare decimals?(比较小数的最佳方法是什么?)
问题描述
比较小数的最佳方式是什么?
假设我有两个值,如3.45
和3.44
,什么是可靠比较它们的最佳方式?
我在考虑将所有数字存储为345
和344
,以便我只比较整数,并且只向用户显示带有小数点的格式化数字。
另一种解决方案是使用自定义函数来测试差异,当差异小于0.01
时,数字应该相等。
其他可能的解决方案(更好的解决方案)有哪些?
推荐答案
最常见的技术是使用epsilon(您描述的第二件事)。然而,要制作一个适用于所有输入数字的通用epsilon可能是极其困难或不可能的。如果你要处理的是1000000000左右的数字或者0.00001左右的数字,那么0.01epsilon对你来说可能是可怕的。有关epsilon技术的全面分析,请阅读this。
您描述的第一个解决方案在时间数学中非常常见。所有内容都以整数个刻度表示。勾号可以代表1秒、1毫秒或您想要的任何符号。然后,如果您愿意,可以将它们转换为另一个单位的小数,或者对它们进行比较。唯一的问题是您需要选择一个刻度大小,并且不能小于1刻度单位。
这篇关于比较小数的最佳方法是什么?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:比较小数的最佳方法是什么?


- MoreLinq maxBy vs LINQ max + where 2022-01-01
- Web Api 中的 Swagger .netcore 3.1,使用 swagger UI 设置日期时间格式 2022-01-01
- 如何用自己压缩一个 IEnumerable 2022-01-01
- 良好实践:如何重用 .csproj 和 .sln 文件来为 CI 创建 2022-01-01
- WebMatrix WebSecurity PasswordSalt 2022-01-01
- 在哪里可以找到使用中的C#/XML文档注释的好例子? 2022-01-01
- C#MongoDB使用Builders查找派生对象 2022-09-04
- 输入按键事件处理程序 2022-01-01
- C# 中多线程网络服务器的模式 2022-01-01
- 带有服务/守护程序应用程序的 Microsoft Graph CSharp SDK 和 OneDrive for Business - 配额方面返回 null 2022-01-01