python - 如何检查变量的值是否为-0.0?

时间:2018-01-24 08:49:07

标签: python

我有一个有时值为-0.0的变量,我希望在这种情况下将其值更改为0.0。

问题是,我找不到一个很好的方法来检查它的值是否为-0.0!

我不能使用类似的东西:

if a == -0.0:
  a = 0.0

因为a可以有其他值,如False(和False == -0.0)。

我想如果我使用的是,那就行了,但 -0.0是-0.0 是假的!

我的另一个想法是尝试:

if str(a) == '-0.0':
  a = 0.0

不幸的是,这也有问题,因为a的值可以是' -0.0',我希望将其保留为字符串。

所以,现在我只能想到:

if not isinstance(a, str) and str(a) == '-0.0':
   a = 0.0
考虑到我想做什么,这是非常疯狂的......

有谁知道有更好的方法吗?非常感谢你的帮助! :)

3 个答案:

答案 0 :(得分:2)

您还可以使用输出绝对值的abs()

if type(a) is float and abs(a) == 0:
    a = abs(a)

因此,检查a == -0.0变得不必要了。

答案 1 :(得分:1)

if type(a) is float and a == -0.0

答案 2 :(得分:1)

详细说明以前的答案,最简单的方法是:

  • 检查类型
  • 检查是否等于0.0

并且在这种情况下设置为0.0,我们不关心a是-0.0还是0.0,在所有情况下强制0.0

if isinstance(a,float) and not a:
   a = 0.0