开发笔记

  • 首页
  • 工具箱
三味线的博客
  1. 首页
  2. Qt
  3. 正文

Qt 控制小数精度并去掉末尾的0

2020-01-31 1113点热度 1人点赞 0条评论

1. 使用number函数

QString::number(num, 'f', 2)

2. 使用arg

double aa = 12.43456000; 
double bb = 13.1000; 
double cc = 14.0100; 
double dd = 15.0000; 
QRegExp reg; 
reg.setPattern("(\\.){0,1}0+$"); 
QString aas = QString("%1").arg(aa, 0, 'f', 2).replace(reg, ""); 
QString bbs = QString("%1").arg(bb, 0, 'f', 2).replace(reg, ""); 
QString ccs = QString("%1").arg(cc, 0, 'f', 2).replace(reg, ""); 
QString dds = QString("%1").arg(dd, 0, 'f', 2).replace(reg, ""); 
qDebug()<<"aa: "<<aas; 
qDebug()<<"bb: "<<bbs; 
qDebug()<<"cc: "<<ccs; 
qDebug()<<"dd: "<<dds; 
qDebug()<<"ee: "<<QString("100").replace(reg, "");
aa: "12.43" 
bb: "13.1" 
cc: "14.01" 
dd: "15" 
ee: "1"

被replace的字符串必须包含小数点,否则如100会被变成1,因为是将匹配到的部分去掉(匹配".0"或结尾的0);这里只支持所取精度位数大于0的情况;

本作品采用 知识共享署名 4.0 国际许可协议 进行许可
标签: Qt
最后更新:2020-06-06

三味线

一个佛系软件工程师

点赞
< 上一篇
下一篇 >

文章评论

取消回复

Captcha Code

COPYRIGHT © 2021 Clownce. ALL RIGHTS RESERVED.

THEME KRATOS MADE BY VTROIS

蜀ICP备18010095号