Qt double类型输出问题

一、示例

double dd = 587654367 * 0.001;

qDebug() << "1 --> " << QString::number(dd);
qDebug() << "2 --> " << QString::number(dd, 'f', 6);

  输出结果:

    

  由此可见QString::number()默认只输出6位,若想要后面的数提高输出位数即可

  查看QString::number()函数,该函数定义如下:    

    static QString number(int, int base=10);
    static QString number(uint, int base=10);
    static QString number(long, int base=10);
    static QString number(ulong, int base=10);
    static QString number(qlonglong, int base=10);
    static QString number(qulonglong, int base=10);
    static QString number(double, char f='g', int prec=6);

  这是一个重载成员函数,它们的行为基本相同。根据fmt指定的格式

    第一个参数被格式化

    g为默认选用参数并且可用下列替换:

      e - 格式化为[-]9.9e[+|-]999

      E - 格式化为[-]9.9E[+|-]999

      f - 格式化为[-]9.9

      g - 使用e或f格式,看哪一个更简练

      G - 使用E或f格式,看哪一个更简练

    在所有的情况下,小数点之后数字的个数等于prec指定的精度。

  

 

    

猜你喜欢

转载自www.cnblogs.com/jiangson/p/9175371.html