为什么我得到的值为-0.000000
。零负甚至存在吗?
我乘以更大的双倍价值。为什么我得到这样的结果?
它溢出了吗?我应该使用比这更大的数据类型吗?
答案 0 :(得分:6)
来自Wiki:
Does negative zero even exist?
带符号的零为零,带有相关符号。在普通算术中,-0 = +0 然而,在计算中,一些数字表示允许存在两个零,通常用-0(负零)和+0表示 (正零)。这发生在符号和幅度和' 补码整数的有符号数表示,在大多数情况下 浮点数表示。数字0通常是编码的 为+0,但可以用+0或-0表示。
Is it overflowing ? should i use a bigger data type than this?
在IEEE 754二进制浮点数中,表示零值 有偏差的指数和有效数都为零。负零 将符号位设置为1。 可能会获得负零 某些计算的结果,例如作为结果 负数的算术下溢,或-1.0 * 0.0,或简称为 -0.0 强>
答案 1 :(得分:3)
这可能是一个标志性的事情。浮点类型+0.0和-0.0中存在2个不同的零值。 它也可能是精确的东西。 -0.000000000009可能被打印为-0.000000,这是完全合理的。
答案 2 :(得分:2)
从您的other question可以看出,您所拥有的值不是负零,而是一个小的负值,由于用于显示它的格式规范而显示为“-0.000000”。