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的情况;
文章评论