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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Перевод числа с плавающей запятой в строку  (Прочитано 11574 раз)
Barmaglodd
Гость
« : Июнь 09, 2009, 11:20 »

Как перевести число с плавающей запятой(double) в строку с учётом локали, с заданным числом знаков после запятой, не выводя нули на конце.
Например, выводим числа с точностью до пятого знака.
10,123 -> 10,123 (а не 10,12300)
125 ->125 (а не 125,00000)

Есть ли какой-нибудь встроенный в Qt способ это сделать? Или только "руками": переводим через QLocale в строку, обрезаем нули и запятую в конце.
Записан
spirit
Гость
« Ответ #1 : Июнь 09, 2009, 11:24 »

в описалове QLocale вроде ж были примеры.
Записан
Barmaglodd
Гость
« Ответ #2 : Июнь 09, 2009, 11:44 »

Нет или я плохо ищу Грустный
Записан
spirit
Гость
« Ответ #3 : Июнь 09, 2009, 11:47 »

оно?
Записан
Barmaglodd
Гость
« Ответ #4 : Июнь 09, 2009, 12:00 »

А толку-то? Я про это и так написал, мне не нужны нули на конце строки. При указании формата 'f', строка заполняется ими до указанного количества знаков после запятой.
Записан
Rcus
Гость
« Ответ #5 : Июнь 09, 2009, 12:04 »

Значит нет нужного: в режиме 'f' нули не обрезаются, а в режиме 'g' - ненужное переключение на экспоненциальную форму представления
Записан
spirit
Гость
« Ответ #6 : Июнь 09, 2009, 12:07 »

Код
C++ (Qt)
qDebug() << QLocale::system().toString(125.000000, 'f', 0);
qDebug() << QString::number(125.000000, 'f', 0);
 
результат
Цитировать
125
125
в чем проблема?  Непонимающий
Записан
Barmaglodd
Гость
« Ответ #7 : Июнь 09, 2009, 12:21 »

Я говорил о

Код:
QLocale::system().toString(125.000000, 'f', 5);

а не

Код:
QLocale::system().toString(125.000000, 'f', 0);

Подмигивающий

Я явно задаю 5 знаков после запятой, а в вашем примере 0.
Записан
spirit
Гость
« Ответ #8 : Июнь 09, 2009, 12:27 »

ээээ, ясно. тогда ручками.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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