Подтвердить что ты не робот

Как проверить, является ли double значением null?

Я запрашиваю базу данных, и некоторые результаты, которые я получаю, равны нулю. Я устанавливаю эти значения в переменную с двойным типом данных. Позвольте называть переменную "результаты". Поэтому я попытался настроить оператор if, чтобы увидеть, что он равен Null, который, конечно же, не работает. Вот код, который у меня есть для инструкции if:

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

Ошибка с этим кодом:

Оператор == - undefined для типа аргументов double, null

Есть ли лучший способ определить, является ли он нулевым?

4b9b3361

Ответ 1

Я бы рекомендовал использовать Double, а не double, как ваш тип, тогда вы проверите против null.

Ответ 2

Во-первых, Java double не может быть нулевым и не может сравниться с Java null. (Тип double является примитивным (не ссылочным) типом, а примитивные типы не могут быть пустыми.)

Далее, если вы вызываете ResultSet.getDouble(...), который возвращает double не a double, документированное поведение заключается в том, что NULL (из базы данных) будет возвращена как ноль. (См. Javadoc, связанный выше.) Это не поможет, если ноль является допустимым значением для этого столбца.

Итак, ваши варианты:

  • используйте ResultSet.wasNull() для проверки NULL (базы данных) сразу после вызова getDouble(...) или

  • используйте ResultSet.getObject(...) и введите результат double.

Метод getObject будет предоставлять значение как double (при условии, что тип столбца double), и документирован для возврата null для NULL. (Для получения дополнительной информации эта страница документирует сопоставления по умолчанию типов SQL для типов Java и, следовательно, какой фактический тип вы должны ожидать getObject для доставки.)

Ответ 3

Двойной примитив в Java никогда не может быть нулевым. Он будет инициализирован до 0.0, если для него не было задано никакого значения (кроме случаев, когда объявляется локальная двойная переменная и не присваивается значение, но это приведет к ошибке времени компиляции).

Дополнительная информация о стандартных значениях по умолчанию здесь.

Ответ 4

Говорить, что что-то "равно null" означает, что это ссылка на нулевое значение. Примитивы (int, double, float и т.д.) По определению являются не ссылочными типами, поэтому они не могут иметь нулевые значения. В этом случае вам нужно будет выяснить, что будет делать ваша оболочка базы данных.

Ответ 5

Как вы получаете значение "результатов"? Получаете ли вы это через ResultSet.getDouble()? В этом случае вы можете проверить ResultSet.wasNull().

Ответ 6

Вы можете просто определить значение двойной переменной и сравнить с этим

Ex.

double var1= 0, var2=0;

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



}

Я надеюсь, что это поможет вам!

Ответ 7

Я верю, что Double.NaN сможет это охватить. Это единственное двойное значение "null".