crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

3 страниц V  < 1 2 3 >  
Ответить в данную темуНачать новую тему
> Как округлять в QString?
Litkevich Yuriy
  опции профиля:
сообщение 12.2.2009, 19:11
Сообщение #11


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(kuler @ 12.2.2009, 22:07) *
qDebug чото мне не нравится, он в релизе то будет работать?
я это не для окончательного варианта привел, а как повод глянуть в его исходник - готовое решение. Но раз уж тебе другое надо, то и делать надо по другому.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kwisp
  опции профиля:
сообщение 12.2.2009, 19:11
Сообщение #12


астарожна ынтжинэр
*****

Группа: Участник
Сообщений: 1404
Регистрация: 26.11.2008
Из: ТаганрогРодинаЧехова
Пользователь №: 435

Спасибо сказали: 113 раз(а)




Репутация:   23  


kuler,
ну вот так сработает если прецижион больше одного

str.remove(QRegExp("0+$|\\.0+$"));

кстати для чего тебе ??? а то я смотрю ты в лог выводишь строку эту?

Сообщение отредактировал kwisp - 12.2.2009, 19:11
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kuler
  опции профиля:
сообщение 12.2.2009, 19:46
Сообщение #13


Танцор диско
***

Группа: Участник
Сообщений: 441
Регистрация: 11.9.2008
Из: Москва
Пользователь №: 289

Спасибо сказали: 6 раз(а)




Репутация:   -1  


Цитата(kwisp @ 12.2.2009, 19:11) *
а то я смотрю ты в лог выводишь строку эту?

это не я вывожу. Нужно для того что это нормально.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
SABROG
  опции профиля:
сообщение 12.2.2009, 23:04
Сообщение #14


Профессионал
*****

Группа: Участник
Сообщений: 1207
Регистрация: 8.12.2008
Из: Russia, Moscow
Пользователь №: 446

Спасибо сказали: 229 раз(а)




Репутация:   34  


Сразу хочу сказать, что метод не безопасен, т.к. double может быть больше чем int.

Округляем до тысячных (3 знака) по правилу математики
    double da = 123.0;
    double db = 123.123;
    double dc = 123.0001;
    da = int(da*1000+0.005)/1000.;
    db = int(db*1000+0.005)/1000.;
    dc = int(dc*1000+0.005)/1000.;
    qDebug() << QString("%1 %2 %3").arg(da).arg(db).arg(dc);


"123 123.123 123"


Сообщение отредактировал SABROG - 13.2.2009, 11:47
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kuler
  опции профиля:
сообщение 13.2.2009, 11:33
Сообщение #15


Танцор диско
***

Группа: Участник
Сообщений: 441
Регистрация: 11.9.2008
Из: Москва
Пользователь №: 289

Спасибо сказали: 6 раз(а)




Репутация:   -1  


Цитата(Litkevich Yuriy @ 12.2.2009, 19:11) *
а как повод глянуть в его исходник - готовое решение.

просмотр привел к следующему коду, вроде работает
QString str;
    QTextStream stream(&str);
    stream.setRealNumberPrecision(4);

    stream << 4.5;
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kwisp
  опции профиля:
сообщение 13.2.2009, 12:05
Сообщение #16


астарожна ынтжинэр
*****

Группа: Участник
Сообщений: 1404
Регистрация: 26.11.2008
Из: ТаганрогРодинаЧехова
Пользователь №: 435

Спасибо сказали: 113 раз(а)




Репутация:   23  


kuler,
только что проверил этот код не совсем корректно работает. тут реалпрецижион это не колличество знаков после запятой а колличество знаков вообще:)

надо со стандартными потоками поработать:) там вроде можно сделать.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
SABROG
  опции профиля:
сообщение 13.2.2009, 13:06
Сообщение #17


Профессионал
*****

Группа: Участник
Сообщений: 1207
Регистрация: 8.12.2008
Из: Russia, Moscow
Пользователь №: 446

Спасибо сказали: 229 раз(а)




Репутация:   34  


В C++ в принципе нет метода trunc (хотя он и есть в MSVC) для обрезания экспоненты. http://en.wikipedia.org/wiki/Truncate

В стандартных потоках есть такое http://www.cplusplus.com/reference/iostrea...tprecision.html
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kwisp
  опции профиля:
сообщение 13.2.2009, 14:14
Сообщение #18


астарожна ынтжинэр
*****

Группа: Участник
Сообщений: 1404
Регистрация: 26.11.2008
Из: ТаганрогРодинаЧехова
Пользователь №: 435

Спасибо сказали: 113 раз(а)




Репутация:   23  


так решение в примере написано :)
бери и пользуй.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kuler
  опции профиля:
сообщение 13.2.2009, 14:19
Сообщение #19


Танцор диско
***

Группа: Участник
Сообщений: 441
Регистрация: 11.9.2008
Из: Москва
Пользователь №: 289

Спасибо сказали: 6 раз(а)




Репутация:   -1  


Цитата(kwisp @ 13.2.2009, 14:14) *
так решение в примере написано

каком?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kwisp
  опции профиля:
сообщение 13.2.2009, 14:21
Сообщение #20


астарожна ынтжинэр
*****

Группа: Участник
Сообщений: 1404
Регистрация: 26.11.2008
Из: ТаганрогРодинаЧехова
Пользователь №: 435

Спасибо сказали: 113 раз(а)




Репутация:   23  


Цитата(SABROG @ 13.2.2009, 13:06) *
В стандартных потоках есть такое http://www.cplusplus.com/reference/iostrea...tprecision.html
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

3 страниц V  < 1 2 3 >
Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 23.4.2024, 17:22