乘法结果为负零

时间:2011-02-27 04:22:04

标签: python

有人可以告诉我为什么下面提到的代码的输出是负零吗?

a * b = -0

这里'a'的类型为long,b是十进制类的对象.....如果a = -28且b = 0,则输出为-0

2 个答案:

答案 0 :(得分:7)

来自Python decimal文档:

  

签名的零可以来自   下溢的计算。他们保持   如果是的话会产生的迹象   计算已经完成   更高的精度。既然他们的   幅度为零,正面和正面   负零被视为相等   他们的标志是信息性的。

答案 1 :(得分:0)

这解释了一切:

http://effbot.org/pyfaq/why-are-floating-point-calculations-so-inaccurate.htm

它非常接近零,但从负面来看,这就是为什么会发生这种情况。