gpt4 book ai didi

c++ - 是否不可能在 QdataStream 为 float 写 4 个字节,为 double 写 8 个字节?

转载 作者:行者123 更新时间:2023-11-30 02:07:08 29 4
gpt4 key购买 nike

我需要(我必须)将大量 float 写入 qdatastream 并且我只使用 4 个字节是必要的。setFloatingPointPrecision 或为 float 和 double 写入 4 或 8。我认为它适用于 qreal,但令我惊讶的是它适用于 float a double 类型..

有解决办法吗?谢谢

最佳答案

一个可能的解决方法是编写一个函数并重载它:

void writeReal(QDataStream& out, float f)
{
out.setFloatingPointPrecision(QDataStream::SinglePrecision);
out << f;
}

void writeReal(QDataStream& out, double f)
{
out.setFloatingPointPrecision(QDataStream::DoublePrecision);
out << f;
}

现在简单地使用这个函数来序列化 float 和 double

QFile file("file.dat");
file.open(QIODevice::WriteOnly);
QDataStream out(&file);
writeReal(out, (float) 3.14); // Casting to float so single precision will be used
writeReal(out, (double) 3.14); // Casting to double so double precision will be used

关于c++ - 是否不可能在 QdataStream 为 float 写 4 个字节,为 double 写 8 个字节?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8171892/

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