qt c ++" QString :: number"不保留所需的小数位数

时间:2015-12-31 00:24:12

标签: c++ qt numbers qstring

我在将数字转换为字符串并保留所有小数位时遇到问题。在下面的代码中,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);
      }

1 个答案:

答案 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