如何检查double是否为null?

问题描述 投票:35回答:7

我正在查询数据库,我得到的一些结果是空的。我将这些值设置为数据类型为double的变量。我们将变量称为“结果”。所以我尝试设置一个if语句来看它等于Null当然不起作用。以下是我对if语句的代码:

if (results == null)
{
     results = 0;
}

我用这段代码得到的错误是:

对于参数类型double,null,运算符==未定义

有没有更好的方法来确定它是否为空?

java database null double
7个回答
35
投票

我建议使用Double而不是double作为你的类型然后你检查null。


47
投票

首先,Java double不能为null,也不能与Java null进行比较。 (double类型是原始(非引用)类型,原始类型不能为null。)

接下来,如果你调用ResultSet.getDouble(...),它返回double而不是Double,记录的行为是NULL(来自数据库)将返回为零。 (参见上面链接的javadoc。)如果零是该列的合法值,则无济于事。

所以你的选择是:

getObject方法将值作为Double传递(假设列类型为double),并记录为返回null为NULL。 (有关更多信息,this page记录了SQL类型到Java类型的默认映射,因此需要getObject提供的实际类型。)


6
投票

Java中的double原语永远不能为null。如果没有为它赋值,它将被初始化为0.0(除非声明一个局部双变量而没有赋值,但这会产生编译时错误)。

有关默认原始值here的更多信息。


4
投票

要说某些东西“为空”意味着它是对空值的引用。根据定义,基元(int,double,float等)不是引用类型,因此它们不能具有空值。在这种情况下,您需要了解数据库包装器将执行的操作。


4
投票

你是如何获得“结果”的价值的?你是通过ResultSet.getDouble()得到的吗?在这种情况下,您可以检查ResultSet.wasNull()


0
投票

您可以简单地定义double变量的值并与之进行比较

防爆。

double var1= 0, var2=0;

if(var1!= 0 && var2!= 0 ){



}

我希望这能帮到您!


-1
投票

我相信Double.NaN可能能够涵盖这一点。这是double包含的唯一'null'值。

© www.soinside.com 2019 - 2024. All rights reserved.