Как конвертировать QVector <double>в QByteArray и сжать его - PullRequest
0 голосов
/ 13 января 2020

Я хотел бы конвертировать 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 голосов
/ 13 января 2020

Если по какой-либо причине это не позволит сохранить значение (например, 0.0 +10 или более десятичных дробей, вы могли бы сделать обходной путь: 1 преобразовать двойную строку t и получить t_size в int 2, создать long или другое int в соответствии с длиной указанного значение и умножьте его на размер оригинала и сохраните размер с новым значением int.

Если оригинал равен 1.876649018, то размер равен 10, поэтому множитель равен 10 ^ 10

3, вернуть его просто вопрос деления нового значения long int на размер

Это единственное, что приходит на ум сейчас ...

...