如何检查double是否为null?

时间:2012-02-01 02:51:06

标签: java database null double

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

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

我使用此代码获得的错误是:

对于参数类型double,null

,运算符==未定义

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

7 个答案:

答案 0 :(得分:47)

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

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

所以你的选择是:

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

答案 1 :(得分:34)

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

答案 2 :(得分:6)

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

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

答案 3 :(得分:4)

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

答案 4 :(得分:4)

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

答案 5 :(得分:0)

您只需定义double变量的值并与之比较

例如。

double var1= 0, var2=0;

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



}

希望这对您有帮助!

答案 6 :(得分:-1)

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