qt c++ "QString::number" 不需要保留小数位
qt c++ "QString::number" not retaining decimal places needed
我在将数字转换为字符串并保留所有小数位时遇到问题。在下面的代码中,flat 和 flon 都被声明为 double 并且有 6 个小数位 (flat = 32.447134),(flon = -100.136468)。用 QString::number 转换后,(flat = 32.4471) 和 (flon = -100.136)。这些是 gps 坐标,因此保留所有小数位非常重要。
如果我将flon缩短为-99.136468,转换后它保留了4位小数,所以看起来必须限制8个字符的字符串长度。我需要 11.
如何转换它们并保留所有小数位?
我已经尝试 "QString::number(long n, int base = 10)" 和 QT 文档中的其他方法,但是当我尝试 运行 时出现语法和其他错误。
提前致谢!
if (ui -> northeast -> isChecked())
{
flat = flat + .00007;
flon = flon + .00007;
lo = QString::number(flon);
la = QString::number(flat);
QString ll = la + "," + lo;
ui -> gps_latlon -> setText(ll);
}
您正在使用 this overload of QString::number:
QString QString::number(double n, char format, int precision)
因此请传递正确的格式和所需的精度。
这样做:
str = QString::number(flat, 'f', 6);
如果您想知道 f
是什么意思,check it out here。
我在将数字转换为字符串并保留所有小数位时遇到问题。在下面的代码中,flat 和 flon 都被声明为 double 并且有 6 个小数位 (flat = 32.447134),(flon = -100.136468)。用 QString::number 转换后,(flat = 32.4471) 和 (flon = -100.136)。这些是 gps 坐标,因此保留所有小数位非常重要。
如果我将flon缩短为-99.136468,转换后它保留了4位小数,所以看起来必须限制8个字符的字符串长度。我需要 11.
如何转换它们并保留所有小数位?
我已经尝试 "QString::number(long n, int base = 10)" 和 QT 文档中的其他方法,但是当我尝试 运行 时出现语法和其他错误。
提前致谢!
if (ui -> northeast -> isChecked())
{
flat = flat + .00007;
flon = flon + .00007;
lo = QString::number(flon);
la = QString::number(flat);
QString ll = la + "," + lo;
ui -> gps_latlon -> setText(ll);
}
您正在使用 this overload of QString::number:
QString QString::number(double n, char format, int precision)
因此请传递正确的格式和所需的精度。
这样做:
str = QString::number(flat, 'f', 6);
如果您想知道 f
是什么意思,check it out here。