Конвертировать двойное в QString - PullRequest
42 голосов
/ 09 мая 2011

Я пишу программу в QT. Я хочу преобразовать double в Qstring в C ++.

Ответы [ 5 ]

82 голосов
/ 09 мая 2011

Использовать числовой метод QString (документы здесь ):

double valueAsDouble = 1.2;
QString valueAsString = QString::number(valueAsDouble);
16 голосов
/ 10 мая 2011

Вместо QString::number() я бы использовал QLocale::toString(), поэтому я могу получить отдельные группы групп, например немецкое "1.234.567,89".

8 голосов
/ 26 августа 2016

Вы можете использовать arg () следующим образом:

double dbl = 0.25874601;
QString str = QString("%1").arg(dbl);

Это преодолевает проблему: «Фиксированная точность» в других функциях, таких как: setNum () и number (), которые будут генерировать случайные числа для завершения определенной точности

3 голосов
/ 09 мая 2011

Ознакомьтесь с документацией

Цитата:

QString предоставляет множество функций для преобразование чисел в строки и Строки в числа. Смотрите arg () функции, setNum () функции, число () статические функции и toInt () , toDouble () и аналогичные функции.

2 голосов
/ 23 февраля 2018

Опираясь на ответ @ Кристиана, у меня было желание отобразить фиксированное количество знаков после запятой.Это можно сделать с помощью других аргументов в функции QString::number(...).Например, я хотел 3 десятичных знака:

double value = 34.0495834;
QString strValue = QString::number(value, 'f', 3);
// strValue == "34.050"

'f' указывает десятичную запись в формате (больше информации здесь , вы также можете указать научную запись), а 3 указываетточность (количество десятичных знаков).Возможно, уже связаны в других ответах, но дополнительную информацию о функции QString::number можно найти здесь, в документации QString

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...