gpt4 book ai didi

c++ - Qt SQL : how to differentiate between a double and an int?

转载 作者:搜寻专家 更新时间:2023-10-31 01:38:07 27 4
gpt4 key购买 nike

我在 Qt 中使用 SQLite 数据库。当用信息填充 QTableWidget 时,我想检查作为 QVariant 收到的值是整数、 double 还是字符串:

// query something here, put in in var named 'query'
while(query.next()){
// insert new row
for (int i=0; i<columnCount; i++){
if(query.value(i).toInt()!=0){
//add integer table item with special sorting/formatting
}else if(query.value(i).toDouble()!=0){
//add double table item with special sorting/formatting
}else {
//add standard qt table item
}
}
}

问题是当使用 toInt() 时,double 被强制转换为整数,反之亦然,这就是为什么所有数值都被视为整数或都被视为 double 的原因,具体取决于您选择哪个先测试。

是否有可能正确检查数字是 double 还是整数?

最佳答案

要测试存储在 QVariant 中的确切类型,您可以使用 type()功能,然后打开它:

switch(query.value(i).type()) {
case QMetaType::Int:
// ....
break;
case QMetaType::Double:
// ...
break;
}

可以找到类型here .

另外,也许@Victor 的回答有它的优点——我不确定 QtSQL 如何处理这些类型。

关于c++ - Qt SQL : how to differentiate between a double and an int?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33269043/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com