Russian Qt Forum
Сентябрь 30, 2024, 10:23 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Float  (Прочитано 2415 раз)
deefox
Гость
« : Октябрь 28, 2015, 16:27 »

Добрый вечер.

Использую Float в структуре для передачи данных по UdP. Подскажите пожалуйста, в библиотеках он числится как 32, но кадрируется он как 64 бит. Как мне ограничить его как 32, и чтобы он кодировал именно по стандарту 32, а не 64.

Просмотрел форум но ничего не нашел. если я все же что то пропустил. дайте ссылку.

Заранее спасибо за помощь.
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #1 : Октябрь 28, 2015, 16:29 »

Покажи код структуры и как передаешь ее.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
deefox
Гость
« Ответ #2 : Октябрь 28, 2015, 16:33 »

typedef struct {
    quint8 tstp;
    quint8 tstp_ram;
    quint8 tstp_nvram;
    quint8 tstp_falsh;
    quint8 tstp_nandflash;
    quint8 tsttime;
    qint32 tstd_day;
    qint32 tstd_hours;
    qint32 tstd_minute;
    quint8 tsttd;
    float tsttmp;
    quint8 tstEc;
    quint8 tstEc_2;
    quint8 tstFc;
}s_test_1;

структура такова. передаю через QByteArray

        QByteArray block;
        QDataStream out(&block, QIODevice::WriteOnly);
        out << s_hade.msgType;
        out << s_hade.msgLenght;
        out << s_hade.msgNum;
        out << s_hade.senderType;
        out << s_hade.recipientType;
        out << s_hade.mode;
        out << s_hade.mode_vsk_2;
        out << s_hade.version;
        out << validate.bits;
        out << s_test1.tstp;
        out << s_test1.tstp_ram;
        out << s_test1.tstp_nvram;
        out << s_test1.tstp_falsh;
        out << s_test1.tstp_nandflash;
        out << s_test1.tsttime;
        out << s_test1.tstd_day;
        out << s_test1.tstd_hours;
        out << s_test1.tstd_minute;
        out << s_test1.tsttd;
        out << s_test1.tsttmp; /* << float; */


на приеме примерно акая же структура. и конвертирует согласно стандарту 64.
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #3 : Октябрь 28, 2015, 16:38 »

Читай доки.
Код
C++ (Qt)
void QDataStream::setFloatingPointPrecision(FloatingPointPrecision precision)
 
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
deefox
Гость
« Ответ #4 : Октябрь 28, 2015, 16:47 »

спасибо что указал направление))
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.154 секунд. Запросов: 22.