一个比较float是否相等的工具类
Posted 奇迹师
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一个比较float是否相等的工具类相关的知识,希望对你有一定的参考价值。
比较 float 是否相等
为什么不是直接进行 == 比较而是需要写一个方法来进行比较?
因为 浮点数在计算计中的存储是通过二进制的方式进行存储会存在一个精度丢失的问题。
- 比如 :
浮点数16777216
的二进制为0-10010111-00000000000000000000000
浮点数16777217
的二进制为0-10010111-00000000000000000000000
所以两者相等. - 具体原因可以参考文章
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是否相等的工具类的主要内容,如果未能解决你的问题,请参考以下文章