Название: Формат числа в строке Отправлено: radislav72 от Октябрь 06, 2011, 17:36 Здравстуйте!
Нужно выводить числа в формате, при котором незначащие десятичные нули не отображаются, например: 92337.9800 --> 92337.98 Пробовал QString::number(xx) но при больших числах они выводятся в експоненциальном формате 37436874324.347347 --> 3.74369e+10 а надо чтобы было полное число. Очевидно решение должно быть каким-то примитивно простым, но толком не могу найти ответ. Название: Re: Формат числа в строке Отправлено: GreatSnake от Октябрь 06, 2011, 17:39 Код
PS. По-внимательней выбирай форум - всё-таки к GUI сей вопрос не относится. Название: Re: Формат числа в строке Отправлено: radislav72 от Октябрь 06, 2011, 17:53 QString::number как раз что-то пока не получилось использовать в данном случае:
- если задать формат 'g' то для малых чисел нормально, но для больших (как уже писал)- нехорошо: они переводятся в експоненциальный формат - если задать формат 'f' и precision ,то нули после запятой отображаются 9.9000 вместо 9.9. П.С. Извиняюсь, немного не в тему написал, в след. раз буду выбирать более подходящую ветку. Название: Re: Формат числа в строке Отправлено: GreatSnake от Октябрь 06, 2011, 17:57 Тогда попробуй:
Код
Название: Re: Формат числа в строке Отправлено: radislav72 от Октябрь 06, 2011, 18:17 Да, с некоторыми приспособлениями такой вариант подходит: если выбрать формат 'f', не указывать precision, задать большую ширину поля fieldWidth (например 25), указать fillChar пробел (по умолчанию), и после всего етого сделать получвшейся строке trim, то вроде получается как надо :)
Спасибо за ответ. Название: Re: Формат числа в строке Отправлено: INZER от Февраль 15, 2018, 17:01 Тогда попробуй: Код
А как сделать то же самое, но если в строке необходимо шестнадцатиричное представление числа Вернее есть 6 чисел. Необходимо их распечатать в формате QString("AA.BB.CC.DD.EE.FF") что то туплю. Название: Re: Формат числа в строке Отправлено: kambala от Февраль 15, 2018, 21:22 6 раз вызвать этот метод arg(), например
Название: Re: Формат числа в строке Отправлено: INZER от Февраль 16, 2018, 09:42 6 раз вызвать этот метод arg(), например Этот шаг я прошел, извиняюсь за немногую некорректность поставленного вопроса. На данный момент реализация такая: Код: serialNumber = QString("%1.%2.%3.%4.%5.%6") На входе QByteArray На выходе: 21.01.24.00.00.08 Необходимо: 15.01.18.00.00.08 То есть в шестнадцатеричном виде. Как это сделать поэлегантнее? Есть вариант использования Qstring::number(int a, int base) В данном случае будет автоматическое приведение к шестнадцатеричному формату, но опять же фомат вывода: 15.1.18.0.0.8 UPD: Нашел следующий вариант: Код: serialNumber = QString("%1.%2.%3.%4.%5.%6") На выходе: 15. 1.18. 0. 0. 8 Как добавить символ 0 для одноциферных чисел? ) UPD РЕШЕНО Код: serialNumber = QString("%01.%02.%3.%4.%5.%6") Последним параметром должен идти именно QLatin1Char, иначе на выходе полная ерунда |