我想将QVector转换为QByteArray。我正在使用这样的东西:

QByteArray bytesArray
QDataStream out(&bytesArray ,QIODevice::WriteOnly);
out << someVector;
bytesArray = qCompress(bytesArray, 5);


并阅读:

bytesArray = qUncompress(bytesArray)
QDataStream in(bytesArray);
QVector<qreal> otherVector;
in >> otherVector;


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

最佳答案

如果出于某种原因它不允许存储该值(例如0.0 +10或更多的小数位数,您可以采取解决方法
1转换双精度t字符串并将t_size转换为int
2根据上述值的长度创建一个long或另一个int,然后将其乘以原始大小,然后将大小保存为新的int值。

如果原始尺寸为1.876649018,则尺寸为10,因此
 乘数是10 ^ 10

3取回它只是新的long int值与大小的分配问题

这是目前唯一想到的事情...

关于c++ - 如何将QVector <double>转换为QByteArray并将其压缩,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59722157/

10-12 19:37