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