将双精度转换为 QString

Convert a double to a QString

本文关键字:QString 转换 双精度      更新时间:2023-10-16

我正在用Qt编写一个程序。我想在C++将double转换为QString

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

double valueAsDouble = 1.2;
QString valueAsString = QString::number(valueAsDouble);
而不是

QString::number()我会使用QLocale::toString(),所以我可以获得区域设置感知组分隔符,如德语"1.234.567,89"。

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

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

'f'指定十进制格式表示法(更多信息在此处,您还可以指定科学记数法),3指定精度(小数位数)。 可能已经在其他答案中链接,但有关QString::number函数的更多信息可以在QString文档中找到

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

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

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

查看文档

报价:

QString 提供了许多功能 将数字转换为字符串和 字符串成数字。参见 arg() 函数, setNum() 函数, number() 静态函数和 toInt(), toDouble() 和类似 功能。