c++ - 如何将 QVector<double> 转换为 QByteArray 并进行压缩

标签 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。我如何存储和读取完整数字?

最佳答案

如果出于任何原因它不允许存储值(例如 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/

相关文章:

c++ - QSql数据库 : QMYSQL driver not loaded on Mac OS

c++ - 我怎样才能圆一个 QWidgets 的角落?

c - C 中的值是 double 的

C++ QNetworkAccessManager (Qt) 结合 openGL

c++ - 在 C++ 中创建自定义异常

android - 如何从 Qt 获取 android <shared-storage> 路径?

c++ - 十进制数和精确表示

c - C中数组的和

c++ - 使用可变参数模板的递归继承

c++ - 在 Windows 上编译/执行汇编程序的最简单方法?