一尘不染

基本浮点值如何为-0.0?这意味着什么?

java

原始浮点值怎么可能是-0.0?这意味着什么?
我可以取消该功能吗?

当我有:

  float fl;  

然后fl == -0.0返回true,也是如此fl == 0。但是当我打印时,它会打印-0.0


阅读 439

收藏
2020-03-22

共1个答案

一尘不染

因为Java使用IEEE浮点算术标准(IEEE 754)来定义-0.0和使用它。

可表示的最小数字在次正规有效位中没有1位,并且被称为正负零,由正负号确定。它实际上表示在零到相同符号的最小可表示非零数字之间的范围内将数字四舍五入为零,这就是为什么它有一个符号,以及为什么它的倒数+ Inf或-Inf也有一个符号。

你可以通过添加解决特定的问题 0.0

例如

Double.toString(value + 0.0);

`Operations Involving Negative Zero

负零`


(-0.0)+ 0.0-> 0.0的 运算

当浮点运算导致负浮点数非常接近0以至于不能正常表示时,将生成“ -0.0”。

2020-03-22