java - 错误 : incomparable types: double and <null>

标签 java null double

我的代码给我这个错误:

error: incomparable types: double and .

我不知道为什么。

这就是我想要做的:

我有一个公式(谁给了我一个双)但是如果这个公式没有给我答案(除以零,...)我想打印:没有答案!

beta & alfa 是2个 double ,你可以选择。

double valueOne = valueOne(alfa,beta);  
double valueTwo = valueTwo(alfa,beta);  
public double valueOne(double alfa, double beta)
{
   return (-(Math.sqrt((-beta)/alfa)))+alfa;
}
public double valueTwo(double alfa, double beta)
{
    return (Math.sqrt((-beta)/alfa))+alfa;
}

if(valueOne == null && valueTwo == null)
{
    System.out.println("No values");
}

最佳答案

doublenull 进行比较当然是非法的,因为第一个是值类型,而值类型永远不会是 null null 在与引用类型进行比较时代表。此页面可能会帮助您区分两者:What’s the difference between a primitive type and a class type in Java?

如果您不想对无效值或结果抛出异常,您的方法可以使用 Double.NaN constnt 字段:

public double valueOne(double alfa, double beta)
{
    // At least one of the values is invalid.
    if (Double.isNaN((alfa) || Double.isNaN((beta))
    {
        return Double.NaN;
    }

    // Check the alpha or otherwise a div/0 exception may be thrown.
    if (alfa == 0.0)
    {
        return Double.NaN;
    }

    double divResult = (-beta)/alfa;

    // Check the div result because Math.sqrt accepts only positive values:
    // If the argument is NaN or less than zero, the result is NaN. 
    if (divResult < 0.0)
    {
        return Double.NaN;
    }

    return (-(Math.sqrt(divResult)))+alfa;
}

double resultValueOne = valueOne(alfa, beta);  
if(Double.isNaN((resultOne))
{
    System.out.println("No resultValueOne");
}

Sample at ideone

关于java - 错误 : incomparable types: double and <null>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27794416/

相关文章:

java - 无法编辑 EditText Android

java - 继承的 getter 返回 null

java - 销毁当前类对象并通过线程运行同一个类

c# - 如何从 Dapper 查询而不是 default(T) 返回 null?

c - MPI 中的问题 -> 地址 : (nil) 失败

java - 如何比较Java中的 double 序列都是 "approximately equal"?

c - 外部函数中的 float 、 double 据类型混淆 (C)

java - 将方法的答案保留到小数点后两位

javascript - 返回字符串而不是 null

python - 您如何在这些点之间生成随机 double ?