相关疑难解决方法(0)

python中的近似比较

我想让'=='运算符在我的程序中使用近似比较:浮点值x和y相等(==)if

abs(x-y)/(0.5(x+y)) < 0.001
Run Code Online (Sandbox Code Playgroud)

有什么好办法呢?鉴于float是一个内置类型,我不认为我可以重新定义==运算符,是吗?

请注意,我想使用float的其他功能,我唯一想改变的是等于运算符.

编辑:

感谢您的回答,我理解您关于可读性和其他问题的论点.

也就是说,如果可能的话,我真的更希望实际使用常规浮点类型,而不是使用新类或新的比较函数.是否有可能重新定义==运算符的常规浮点数?

我的理由是::

(a)每个使用我正在编写的程序的人都希望以这种方式比较浮点数

(b)世界上没有办法让任何人想要使用默认的==浮点数.为什么它甚至在语言中?

(c)我不喜欢代码中的额外词语; 显然使用现有的float会导致代码没有任何变化

编辑2.

既然我知道我不能重载浮动的==运算符,我必须改变我的问题.它将变得如此不同,我将在内置容器的自定义比较中创建一个新的

python comparison

4
推荐指数
2
解决办法
8896
查看次数

标签 统计

comparison ×1

python ×1