您当前的位置: 首页 >  qt
  • 1浏览

    0关注

    483博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Qt开发高级进阶:QString格式化输出double数值

高精度计算机视觉 发布时间:2022-05-08 17:22:07 ,浏览量:1

在中,对QString格式化输出double的定义只有一个,

 Q_REQUIRED_RESULT QString arg(double a, int fieldWidth = 0, char fmt = 'g', int prec = -1, QChar fillChar = QLatin1Char(' ')) const;

那要如何使用呢?

看代码,

qreal Radius1 = 023.4567;
qreal Radius2 = 456.12345;
QString text = QString("Radius==%1,%2").arg((double)Radius1, 6, 'f', 2, '0')
                    .arg((double)Radius2, 6, 'f', 2, '0');

那么,你这时候得到的text格式是这样的,

Radius==023.45,456.12

其中

-- fieldWidth参考表示总共占多少位。这里023.45和456.12,包括小数点总共6位;

-- fmt = 'g' 表示使用科学计数法;'f'表示浮点格式;还不明白的话就自己试一下;

--prec 是表示precision,也就是小数点后几位的意思;

--fillChar表示填充,这里用的是’0‘,例如23,45只有5位,前面用’0‘填充,所以格式化后就是'023.45';

注意:

参数fieldWidth如果少于实际的话,比如这里是5的话,456.12还是会格式化为456.12,但23.45不会再显示为023.45,而是23.45;也就是前面只会填充,但不会截断。

其余的定义如short,ushort,int等道理相同。

题外话:Qt自己搞了一个特有的格式化,感觉多此一举。如果不熟悉的话,可以使用c++标准的sprintf来替代他。

本文结束。

关注
打赏
1661664439
查看更多评论
立即登录/注册

微信扫码登录

0.0374s