将double转换为QString

Nag*_*aju 43 c++ qt

我正在QT写一个程序.我想在C++中将doublea 转换为a Qstring.

Kri*_*ian 83

使用QString的数字方法(文档在这里):

double valueAsDouble = 1.2;
QString valueAsString = QString::number(valueAsDouble);
Run Code Online (Sandbox Code Playgroud)


Lar*_*ars 16

而不是QString::number()我会使用QLocale::toString(),所以我可以得到区域设置意识组seperatores像德国"1.234.567,89".

  • 不总是.我需要转换到美国系统(48.1),这会弄乱. (2认同)

yan*_*ano 10

基于@Kristian 的回答,我希望显示固定的小数位数。这可以通过函数中的其他参数来完成QString::number(...)。例如,我想要 3 个小数位:

double value = 34.0495834;
QString strValue = QString::number(value, 'f', 3);
// strValue == "34.050"
Run Code Online (Sandbox Code Playgroud)

'f'指定十进制格式符号(详细信息在这里,你还可以指定科学计数法)和3指定的精度(小数位数)。可能已经在其他答案中链接,但QString::number可以文档中找到有关该功能的更多信息QString


小智 8

您可以使用arg(),如下所示:

double dbl = 0.25874601;
QString str = QString("%1").arg(dbl);
Run Code Online (Sandbox Code Playgroud)

这克服了以下问题:"固定精度",其他函数如:setNum()和number(),它们将生成随机数以完成定义的精度