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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: [РЕШЕНО] Преобразование из QString в Double  (Прочитано 7810 раз)
aliks-os
Гость
« : Декабрь 15, 2011, 09:52 »

Код:
QString str = "1234.56";
double val = str.toDouble();  
qDebug()<<val;   // val == 1234.56

QString str = "21234.56";
double val = str.toDouble();  
qDebug()<<val;   // val == 21234.6

QString str = "221234.56";
double val = str.toDouble();  
qDebug()<<val;   // val == 221234

Как видите происходит округление. Как мне избавиться от этого округления???
« Последнее редактирование: Декабрь 15, 2011, 10:31 от aliks-os » Записан
Странник
Гость
« Ответ #1 : Декабрь 15, 2011, 10:03 »

попробуйте:
Код:
double val = 21234.56;
qDebug() << val;
я ответил на ваш вопрос?
Записан
aliks-os
Гость
« Ответ #2 : Декабрь 15, 2011, 10:06 »

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

Сообщений: 5876


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


Просмотр профиля WWW
« Ответ #3 : Декабрь 15, 2011, 10:07 »

qDebug округляет.
Записан

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

Хорошо...но когда я вставляю в QTableWidget, тоже происходит округление
Код:
newItem = new QTableWidgetItem(QString::number(val));

Кипит наш разум возмущенный
Записан
aliks-os
Гость
« Ответ #5 : Декабрь 15, 2011, 10:13 »

ха....а вот так все ок!

Код:
str = QString("%L1").arg(val,0,'f',2);
newItem = new QTableWidgetItem(str);

Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


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


Просмотр профиля WWW
« Ответ #6 : Декабрь 15, 2011, 10:14 »

http://doc.qt.nokia.com/4.7-snapshot/qstring.html#number-2
Посмотри на дефолтные зхначения.
Записан

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

Спасибо! на кол-во в 6 знаком в доке я не обратил внимание!
Тема закрыта!
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


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


Просмотр профиля WWW
« Ответ #8 : Декабрь 15, 2011, 10:18 »

Спасибо! на кол-во в 6 знаком в доке я не обратил внимание!
Тема закрыта!
Поставь [РЕШЕНО] в названии темы.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
kolob
Частый гость
***
Offline Offline

Сообщений: 296



Просмотр профиля
« Ответ #9 : Ноябрь 22, 2012, 14:47 »

не то совсем решение. с темой не совпадает.
как из QString в double перевести? округляет и в qDebug() и когда присваиваешь переменной double.
Записан

Qt 5.11.0, Win, MinGW
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #10 : Ноябрь 22, 2012, 15:04 »

эммммммм... QString::toDouble()
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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