QT QDataStream转换浮点数结果为0

问题:使用QDataStream将大端序16进制数据41973333转换为浮点数时,输出结果为0,而使用memcpy结果为正常的18.9;

原因:QDataStream转换浮点数时,一定要指定单精度还是双精度,包括将浮点数转换为二进制数据时,也一样要指定。

解决方案:根据实际的数据指定是单精度还是双精度,stream.setFloatingPointPrecision(QDataStream::SinglePrecision); 或者 stream.setFloatingPointPrecision(QDataStream::DoublePrecision);

posted @ 2025-03-20 09:46  一夜求风  阅读(27)  评论(0)    收藏  举报