我想将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/