c – QString :: number()’f’格式,不带零尾

前端之家收集整理的这篇文章主要介绍了c – QString :: number()’f’格式,不带零尾前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想将数字转换为QString,有3位数字.
QString::number(myNumber,'f',3);

做这项工作,但仍然是尾随零.如何使用它没有他们.

我也尝试过g,而不应该保留这些零:

QString::number(myNumber,'g',3);

但例如472.76被转换为473.令我惊讶的是.为什么使用’g’选项?

但是我对’f’格式感兴趣.所以主要的问题是如何使用’f’而不使用尾随零?

输入 – >所需输出

472.76 – > 472.76

0.0766861 – > 0.077

180.00001 – > 180

解决方法

我几乎很尴尬发布,但它的作品:
QString toString( qreal num )
{
    QString str = QString::number( num,3 );

    str.remove( QRegExp("0+$") ); // Remove any number of trailing 0's
    str.remove( QRegExp("\\.$") ); // If the last character is just a '.' then remove it

    return str;
}

如果你真的关心使用这种方法性能,你可能想要一个不同的解决方案.

猜你在找的C&C++相关文章