C++ 如何转换QVector<;双倍>;要对其进行QByteArray并压缩

C++ 如何转换QVector<;双倍>;要对其进行QByteArray并压缩,c++,qt,double,qbytearray,qvector,C++,Qt,Double,Qbytearray,Qvector,我想把QVector转换成QByteArray。我用的是这样的东西: QByteArray bytesArray QDataStream out(&bytesArray ,QIODevice::WriteOnly); out << someVector; bytesArray = qCompress(bytesArray, 5); QByteArray字节数组 QDataStream out(&bytesArray,QIODevice::WriteOnly); out>ot

我想把QVector转换成QByteArray。我用的是这样的东西:

QByteArray bytesArray
QDataStream out(&bytesArray ,QIODevice::WriteOnly);
out << someVector;
bytesArray = qCompress(bytesArray, 5);
QByteArray字节数组
QDataStream out(&bytesArray,QIODevice::WriteOnly);
out>otherVector;

但我有个问题。我保存了一个像1.23124121325这样的数字,读完后我得到了1.23124。如何存储和读取完整的数字?

如果出于任何原因,它不允许存储数值(例如,0.0+10或更多小数点),则可以解决此问题 1转换双t字符串并将t_大小转换为int 2根据所述值的长度创建一个长整型或另一个整型,并将其与原始整型的大小相乘,然后用新的整型值保存大小

如果原件为1.876649018,则尺寸为10 乘数是10^10

3取回它只是将新的long int值除以大小的问题

这是我现在想到的唯一一件事…

请提供一份表格,说明您是如何获得这些数字的。您是否在做一些或多或少等同于
qreal r=1.2312412135
后跟
std::cout的事情
bytesArray = qUncompress(bytesArray)
QDataStream in(bytesArray);
QVector<qreal> otherVector;
in >> otherVector;