Форум вопросов и ответов

Форум вопросов и ответов (https://www.otvetnemail.ru/)
-   Продолжение нового архива (https://www.otvetnemail.ru/prodolzhenie-novogo-arhiva-811/)
-   -   QVariant NULL == 0? (https://www.otvetnemail.ru/prodolzhenie-novogo-arhiva-811/qvariant-null-0-a-262647/)

Guest 28.09.2011 21:41

QVariant NULL == 0?
 
Всем привет.Qt 4.2.3Вот такой код :КодC++ (Qt) QVariant varNull(QVariant::Double);QVariant var0 = 0.0;if (varNull == var0) { EH_COUT2("varNull.isNull()", varNull.isNull())EH_ENDL; // мои макросы для вывода в стандартный поток EH_COUT2("var0.isNull()", var0.isNull())EH_ENDL; }вывод :varNull.isNull() 1var0.isNull() 0То есть внутрь if заходит.Столкнулся я с этим при работе с базой. Есть в одной таблице поле типа double, где могут быть любые значения, в том числе 0. А могут быть и не заданы, что имеет свой смысл.Запрос всё возвращает правильно, т.е. если 0, то 0 и query.value(i) не isNull; если не задано, то query.value(i) - isNull.И в некоторых местах программы мне надо сравнивать эти значения. И вот собственно натыкаюсь на то, что 0 и нету оказывается одно и тоже, что в контексте моей программы недопустимо. То есть конечно дополнительные проверки всё разрешают, но...Вопрос к гуру. Является ли это багом, или я что-то не понимаю?


Часовой пояс GMT, время: 15:06.


© www.otvetnemail.ru - Форум вопросов и ответов.