我在将数字转换为字符串并保留所有小数位时遇到问题。在下面的代码中,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);
}
答案 0 :(得分:4)
您正在使用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。