2017-08-17 85 views
0

我使用qdecimal库。 有必要以最多两个字符的准确度对数字进行四舍五入。round QDec双精度值,最多两个字符的精度

1.55555 => 1.56 

现在我做这种方式

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

是否有这样做的四舍五入的一个更好的方法?

回答

0

我不知道这是否适用于你。我用过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