舍入 QDecDouble 值,精度最多为两个字符

round QDecDouble value with an accuracy of up to two characters

本文关键字:字符 两个 QDecDouble 精度 舍入      更新时间:2023-10-16

我正在使用qdecimal library。 必须以最多两个字符的精度对数字进行四舍五入。

1.55555 => 1.56

现在我这样做

QDecDouble dd(1.55555);
dd.multiply(QDecDouble(100));
dd = dd.toIntegralValue(DEC_ROUND_HALF_UP);
dd.divide(QDecDouble(100));

有没有更优化的四舍五入方法?

我不知道这是否适合您。我用过QString::number.

下面是一个示例:

#include <qDebug>
int main( void )
{
const double n1 { 1.55555 };
const auto n2 = QString::number( n1, 'f', 2 ).toDouble();
qDebug() << "n1:" << n1;
qDebug() << "n2:" << n2;
return 0;
}

输出:

n1: 1.55555
n2: 1.56