如何将QVector <double>转换为QByteArray并将其压缩

时间:2020-01-13 18:27:36

标签: c++ qt double qbytearray qvector

我想将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。我如何存储和读取完整号码?

1 个答案:

答案 0 :(得分:0)

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

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

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

那是现在唯一想到的事情...