一个比较float是否相等的工具类

Posted 奇迹师

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一个比较float是否相等的工具类相关的知识,希望对你有一定的参考价值。

比较 float 是否相等

  1. 为什么不是直接进行 == 比较而是需要写一个方法来进行比较?

    因为 浮点数在计算计中的存储是通过二进制的方式进行存储会存在一个精度丢失的问题。

  2. 比如 :
    浮点数 16777216 的二进制为 0-10010111-00000000000000000000000
    浮点数 16777217 的二进制为 0-10010111-00000000000000000000000
    所以两者相等.
  3. 具体原因可以参考文章
    https://www.cnblogs.com/JoZSM...

2.工具类

const MIN = 0.000001

// IsEqual
// 判断 float 是否相等
func IsEqual(x, y float64) bool {
    return math.Abs(x-y) < MIN
}

以上是关于一个比较float是否相等的工具类的主要内容,如果未能解决你的问题,请参考以下文章

c# 比较两个对象的值是不是相等

Java必学的工具库,让你的代码量减少90%

为啥java 里要判断两个对象是不是相等呢?

Java中比较对象

java中如何判断两个变量相等

判断两个字符串是不是相等 正解的表达方式是