比较小数的最佳方法是什么?

What is the best way to compare decimals?(比较小数的最佳方法是什么?)
本文介绍了比较小数的最佳方法是什么?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

比较小数的最佳方式是什么?

假设我有两个值,如3.453.44,什么是可靠比较它们的最佳方式?

我在考虑将所有数字存储为345344,以便我只比较整数,并且只向用户显示带有小数点的格式化数字。

另一种解决方案是使用自定义函数来测试差异,当差异小于0.01时,数字应该相等。

其他可能的解决方案(更好的解决方案)有哪些?

推荐答案

最常见的技术是使用epsilon(您描述的第二件事)。然而,要制作一个适用于所有输入数字的通用epsilon可能是极其困难或不可能的。如果你要处理的是1000000000左右的数字或者0.00001左右的数字,那么0.01epsilon对你来说可能是可怕的。有关epsilon技术的全面分析,请阅读this。

您描述的第一个解决方案在时间数学中非常常见。所有内容都以整数个刻度表示。勾号可以代表1秒、1毫秒或您想要的任何符号。然后,如果您愿意,可以将它们转换为另一个单位的小数,或者对它们进行比较。唯一的问题是您需要选择一个刻度大小,并且不能小于1刻度单位。

这篇关于比较小数的最佳方法是什么?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

c# Generic Setlt;Tgt; implementation to access objects by type(按类型访问对象的C#泛型集实现)
InvalidOperationException When using Context Injection in ASP.Net Core(在ASP.NET核心中使用上下文注入时发生InvalidOperationException)
quot;Overflowquot; compiler error with -9223372036854775808L(编译器错误-9223372036854775808L(Q;溢出Q))
Visual Studio 2010 ReportViewer Assembly References(Visual Studio 2010 ReportViewer程序集引用)
Weird behaviour when I open a reportviewer in WPF(在WPF中打开报表查看器时出现奇怪的行为)
how do i pass parameters to aspnet reportviewer(如何将参数传递给aspnet report查看器)