初始化一个double和它的getter

时间:2011-03-23 03:46:11

标签: java

以下是什么好处?

private double pro;
pro = Double.NaN;

为什么不成功

pro = 0.0;
吸气剂是:

public double getpro() {
    if (Double.isNaN(pro))
        somemethod();
    return pro;
}

3 个答案:

答案 0 :(得分:2)

因为NanN代表“不是数字”,所以通常暗示该数字尚未初始化。

您可以使用pro = 0.0;,这样也可以。我认为这个问题更像是一种风格。

答案 1 :(得分:0)

因为对NaN的任何操作都会导致NaN。使用0.0的操作可能会导致pro设置为某个值。虽然NaN可用于表示 pro尚未定义作为您的情况。

     Double d =Double.NaN;
     System.out.println(d*10);
     System.out.println(10/d);
     System.out.println(d/10);
     System.out.println(d+10);

结果

NaN
NaN
NaN
NaN

d=0.0会产生类似

的结果
0.0
Infinity
0.0
10.0

答案 2 :(得分:0)

我想在你的情况下,NaN提示变量pro未初始化,0.0是有效的初始化值。