将双精度转换为 QString
Convert a double to a QString
我正在用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() 和类似 功能。
相关文章:
- 将 hh:mm:ss.zzz 时间 QString 转换为毫秒的单行函数?
- 如何将包含指数的 QString 转换为C++中的双倍?
- 删除unicode def后,无法将QString转换为TCHAR
- 在Qt中将QString转换为ASCII值,反之亦然
- 如何在Windows上将Qt QString转换为LPCTSTR
- 将 QString 转换为 QJsonArray
- QByteArray 和 QString 转换的问题
- q致命参数:将 QString 转换为常量字符* 会导致警告"format string is not a string literal"
- 将QString转换为uintptr_t,qt / c
- 无法将 QString 转换为 Const Char*
- 处理字符到QString转换中的ASCII字符
- 将QString转换为QString的指针
- 使用 QList 将 Qstring 转换为双倍
- 将 QString 转换为 uint16*
- 将 QString 转换为无符号短整型
- 将十六进制 QString 转换为 UTF-8 QString
- 如何在 Visual Studio 2013 中将 Qt5 中的 QString 转换为 LPCSTR
- QString::compare() vs 将 QString 转换为数字然后进行比较
- 正在将QString转换为std::string
- 如何将QString转换为特定格式的QDate