【发布时间】:2011-05-04 06:15:53
【问题描述】:
我在 python 的输出中遇到负零;例如,它的创建如下:
k = 0.0
print(-k)
输出将是-0.0。
但是,当我比较 -k 与 0.0 的相等性时,它会产生 True。 0.0 和 -0.0 之间有什么区别(我不在乎它们可能具有不同的内部表示;我只关心它们在程序中的行为。)是否有任何我应该注意的隐藏陷阱?
【问题讨论】:
-
python 2.5.4 不会给出负值
-
真正隐藏的陷阱是当您开始测试浮点值是否相等时。它们不精确并且容易出现奇怪的四舍五入差异。
-
但它确实在 Python 2.7.1 上打印负值。
-
这个问题出现在现实生活中的gps应用程序中;子午线稍偏西的经度被报告为 0 度 x 分,而它本应为负零度 x 分。但是python不能表示整数负零。
标签: python floating-point floating-accuracy zero