繁体   English   中英

如何转换 QVector<double> 到 QByteArray 并压缩它

[英]How to convert QVector<double> to QByteArray and compress it

我想将 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 值与大小相除的问题

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM