益竹月 发表于 2025-10-7 15:20:00

Qt中float转double解决bindValue插入MySQL中DOUBLE字段问题

一句话总结

Qt中使用float值通过bindValue插入MySQL的DOUBLE字段失败,需显式转换为double类型解决。


关键词:

float、bindValue、QSqlQuery、double、数据库、MySQL、类型转换、数据库插入


问题:

1、MySQL数据库height字段类型为double;
2、Qt中函数返回值类型为float:float getValue();
3、使用QSqlQuery的bindValue时,float类型数值无法插入到数据库中;
版本:Qt 5.14.2


问题示例代码:

// 获取数据的方法
float value = 100.0;
float getValue()
{
    return value;
}

// 数据库连接
QSqlDatabase db;

// 插入语句
QSqlQuery query(db);
query.prepare("insert into table_name(height) values (:height);");
// 绑定数据
query.bindValue(":height", getValue());
query.exec();
结果发现其他数据都可以正常插入,只有float类型无法插入
解决方法:

以下这几种方法都可行:
// 将float类型转换为double类型
query.bindValue(":height", double(getValue()));
query.bindValue(":height", static_cast<double>(getValue()));
// 数值*1.0,转为double
query.bindValue(":height", getValue() * 1.0);
// 直接使用数值
query.bindValue(":height", 100.0);
// 修改数据类型
double value = 100.0;
double getValue()
{
    return value;
}
query.bindValue(":height", getValue());

来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

赐度虻 发表于 2025-10-28 01:52:50

不错,里面软件多更新就更好了

支智敏 发表于 2025-11-1 02:04:21

这个有用。

孓访懔 发表于 2025-11-22 10:11:29

喜欢鼓捣这些软件,现在用得少,谢谢分享!

晌集涟 发表于 2025-11-27 04:24:57

谢谢楼主提供!

卿搞笔 发表于 2025-11-27 21:13:26

喜欢鼓捣这些软件,现在用得少,谢谢分享!

零幸 发表于 2025-12-11 06:13:22

很好很强大我过来先占个楼 待编辑

粒浊 发表于 2026-1-12 13:23:14

感谢分享,学习下。

荡俊屯 发表于 2026-1-14 08:07:16

谢谢分享,辛苦了

袋岖荤 发表于 2026-1-15 22:55:17

感谢分享,学习下。

啤愿 发表于 2026-1-18 20:29:49

前排留名,哈哈哈

嶝扁 发表于 2026-1-20 02:15:58

这个有用。

怀陶宁 发表于 2026-1-24 08:56:53

收藏一下   不知道什么时候能用到

缄戈 发表于 2026-1-24 11:08:33

这个好,看起来很实用

丘娅楠 发表于 2026-1-26 11:56:22

热心回复!

供挂 发表于 2026-1-28 05:25:03

喜欢鼓捣这些软件,现在用得少,谢谢分享!

普料飕 发表于 2026-1-29 04:02:01

新版吗?好像是停更了吧。

栓汨渎 发表于 2026-1-30 07:37:08

热心回复!

季卓然 发表于 2026-2-3 09:50:02

新版吗?好像是停更了吧。

邹弘丽 发表于 2026-2-4 10:43:10

鼓励转贴优秀软件安全工具和文档!
页: [1] 2
查看完整版本: Qt中float转double解决bindValue插入MySQL中DOUBLE字段问题