Форум программистов, компьютерный форум, киберфорум
C++ Qt
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/21: Рейтинг темы: голосов - 21, средняя оценка - 4.67
2 / 2 / 3
Регистрация: 20.07.2015
Сообщений: 49

QVariant в double c запятой

03.11.2015, 10:13. Показов 4528. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток!
Есть программа, которая считывает данные из SQLite. Данные хранятся в виде чисел с плавающей точкой, дробная часть отделена запятой, например: "2,23". Я делаю запрос к БД на получение этих данных, и пытаюсь конвертировать полученные результаты в тип double для последующих расчетов. Проблема в том, что числа у которых есть дробная часть(те присутствует запятая) не конвертируются.
C++ (Qt)
1
2
double length = query.value(1).toDouble(&ab);
            qDebug() << ab << " " << length;
В дебаг выводится false и сама переменная length равняется нулю. Пробовал менять локализацию с помощью QLocale, но не помогло. Может быть, я что-то неправильно делаю? Можете подсказать, как реализовать конвертацию?
Заранее, спасибо.
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
03.11.2015, 10:13
Ответы с готовыми решениями:

В double "помещаются" лишь 5 цифр после запятой
То есть, к примеру, я делаюdouble pi = 3.1415926535; qDebug() выводит, что pi = 3.14159. В чем проблема? IDE - Qt SDK.

Enum to QVariant
Погуглил и как то не помогло. Есть некий enum (файл target.h): enum class Ready{completed, in_process, deferred, in_waiting}; ...

QDomNode to QVariant
Доброе время суток, подскажите пожалуйста, столкнулся с такой вот незатейливой задачей, требуется в QVariant засунуть QDomNode, кто может...

4
23 / 23 / 5
Регистрация: 05.12.2013
Сообщений: 215
03.11.2015, 12:40
Вариант 1. Если данные изначально в текстовом виде - просто поменяй запятую на точку.

Вариант 2. Если данные в каком-то другом виде, приводи их к double ВЫЧИСЛЕНИЕМ. Ну например у тебя есть 2 числа A и B, одно выражает целую часть, а второе - дробную. Тогда

C++ (Qt)
1
2
3
int n = 1;
for (;b > 0; b / 10) n *= 10;
double c = a + (double)b / n;
0
2 / 2 / 3
Регистрация: 20.07.2015
Сообщений: 49
03.11.2015, 15:32  [ТС]
Nelkor, те стандартной функции перевода такой записи нет?
0
23 / 23 / 5
Регистрация: 05.12.2013
Сообщений: 215
03.11.2015, 19:12
Стандартной функции перевода строчного исполнения дробного числа С ЗАПЯТОЙ нет. Есть стандартная функция перевода строчного исполнения дробного числа С ТОЧКОЙ. Если у Вас не строчное исполнение, то я бы рекомендовал написать функцию самому. Если возникают трудности - то постараться изложить суть проблемы чуть поподробнее и я, возможно, смог бы помочь.
0
 Аватар для RazrFalcon
1403 / 1260 / 262
Регистрация: 10.11.2013
Сообщений: 3,763
03.11.2015, 21:53
Лучший ответ Сообщение было отмечено InDark как решение

Решение

Цитата Сообщение от Nelkor Посмотреть сообщение
Стандартной функции перевода строчного исполнения дробного числа С ЗАПЯТОЙ нет.
Есть.
C++ (Qt)
1
2
3
4
5
6
    QString str("123,456");
    QLocale locale(QLocale::Russian);
 
    double v = locale.toDouble(str);
    QString str2 = locale.toString(v);
    qDebug() << str << v << str2;
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
03.11.2015, 21:53
Помогаю со студенческими работами здесь

QMap и QVariant
Привет читающим, вопрос по кусочку кода: #include &lt;QtCore/QCoreApplication&gt; #include &lt;QMap&gt; #include &lt;QDebug&gt; int...

Could not convert Enum to QVariant
Всем добрый день! Есть класс содержащий следующую структуру данных: class ActiveTradeOffer : public QObject { Q_OBJECT ...

Использование QVariant в connect
Есть несколько виджетов (QSlider, QDoubleSpinBox, QLineedit). Для каждого из них при смене текущего значения необходим вызов одного и того...

Удаление элемента QVariant
Не получается очистить список QVariant. У меня существует QList&lt;QAction*&gt; *list, который естественно QAction, каждый из которых хранит...

QVariant получение данных
Добрый день! Помогите пожалуйста разобраться с QVariant, не очень понятно как правильно из него получать данные по типу, т.е. приходится...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru