有人可以告诉我为什么下面提到的代码的输出是负零吗?
a * b = -0
这里'a'的类型为long,b是十进制类的对象.....如果a = -28且b = 0,则输出为-0
答案 0 :(得分:7)
来自Python decimal
文档:
签名的零可以来自 下溢的计算。他们保持 如果是的话会产生的迹象 计算已经完成 更高的精度。既然他们的 幅度为零,正面和正面 负零被视为相等 他们的标志是信息性的。
答案 1 :(得分:0)
这解释了一切:
http://effbot.org/pyfaq/why-are-floating-point-calculations-so-inaccurate.htm
它非常接近零,但从负面来看,这就是为什么会发生这种情况。