Qt C++ "QString::number"不需要保留小数位

qt c++ "QString::number" not retaining decimal places needed

本文关键字:保留 小数 不需要 number QString Qt C++      更新时间:2023-10-16

我在将数字转换为字符串并保留所有小数位数时遇到问题。在下面的代码中,flat和flon都被声明为双精度,并有6位小数(flat=32.447134),(flon=-100.136468)。在用QString::number、(flat=32.4471)和(flon=-100.136)转换后。这些是gps坐标,因此保留所有小数点非常重要。

如果我将flon缩短为-99.136468,它在转换后保留了4个小数位,因此似乎必须限制8个字符的字符串长度。我需要11。

我如何转换它们并保留所有的小数点?

我尝试过QT文档中的"QString::number(long n,int base=10)"和其他内容,但在尝试运行时会出现语法和其他错误。

提前感谢!

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);
      }

您正在使用QString::number:的重载

QString QString::number(double n, char format, int precision)

因此,请传递正确的格式和所需的精度。

这样做:

str = QString::number(flat, 'f', 6);

如果你想知道f是什么意思,请在这里查看。