mirror of
https://bitbucket.org/smil3y/katie.git
synced 2025-02-24 10:52:56 +00:00
optimize QString::number()
Signed-off-by: Ivailo Monev <xakepa10@laimg.moc>
This commit is contained in:
parent
53e5868862
commit
39ba7c8e38
1 changed files with 49 additions and 63 deletions
|
@ -5489,14 +5489,7 @@ float QString::toFloat(bool *ok) const
|
||||||
*/
|
*/
|
||||||
QString &QString::setNum(qlonglong n, int base)
|
QString &QString::setNum(qlonglong n, int base)
|
||||||
{
|
{
|
||||||
#if defined(QT_CHECK_RANGE)
|
*this = QString::number(n, base);
|
||||||
if (Q_UNLIKELY(base < 2 || base > 36)) {
|
|
||||||
qWarning("QString::setNum: Invalid base (%d)", base);
|
|
||||||
base = 10;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
QLocale locale(QLocale::C);
|
|
||||||
*this = locale.d()->longLongToString(n, -1, base);
|
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -5505,14 +5498,7 @@ QString &QString::setNum(qlonglong n, int base)
|
||||||
*/
|
*/
|
||||||
QString &QString::setNum(qulonglong n, int base)
|
QString &QString::setNum(qulonglong n, int base)
|
||||||
{
|
{
|
||||||
#if defined(QT_CHECK_RANGE)
|
*this = QString::number(n, base);
|
||||||
if (Q_UNLIKELY(base < 2 || base > 36)) {
|
|
||||||
qWarning("QString::setNum: Invalid base (%d)", base);
|
|
||||||
base = 10;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
QLocale locale(QLocale::C);
|
|
||||||
*this = locale.d()->unsLongLongToString(n, -1, base);
|
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -5543,32 +5529,7 @@ QString &QString::setNum(qulonglong n, int base)
|
||||||
|
|
||||||
QString &QString::setNum(double n, char f, int prec)
|
QString &QString::setNum(double n, char f, int prec)
|
||||||
{
|
{
|
||||||
QLocalePrivate::DoubleForm form = QLocalePrivate::DFDecimal;
|
*this = QString::number(n, f, prec);
|
||||||
uint flags = 0;
|
|
||||||
|
|
||||||
if (qIsUpper(f))
|
|
||||||
flags = QLocalePrivate::CapitalEorX;
|
|
||||||
f = qToLower(f);
|
|
||||||
|
|
||||||
switch (f) {
|
|
||||||
case 'f':
|
|
||||||
form = QLocalePrivate::DFDecimal;
|
|
||||||
break;
|
|
||||||
case 'e':
|
|
||||||
form = QLocalePrivate::DFExponent;
|
|
||||||
break;
|
|
||||||
case 'g':
|
|
||||||
form = QLocalePrivate::DFSignificantDigits;
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
#if defined(QT_CHECK_RANGE)
|
|
||||||
qWarning("QString::setNum: Invalid format char '%c'", f);
|
|
||||||
#endif
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
QLocale locale(QLocale::C);
|
|
||||||
*this = locale.d()->doubleToString(n, prec, form, -1, flags);
|
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -5599,9 +5560,7 @@ QString &QString::setNum(double n, char f, int prec)
|
||||||
|
|
||||||
QString QString::number(long n, int base)
|
QString QString::number(long n, int base)
|
||||||
{
|
{
|
||||||
QString s;
|
return number(qlonglong(n), base);
|
||||||
s.setNum(n, base);
|
|
||||||
return s;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
|
@ -5611,9 +5570,7 @@ QString QString::number(long n, int base)
|
||||||
*/
|
*/
|
||||||
QString QString::number(ulong n, int base)
|
QString QString::number(ulong n, int base)
|
||||||
{
|
{
|
||||||
QString s;
|
return number(qulonglong(n), base);
|
||||||
s.setNum(n, base);
|
|
||||||
return s;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
|
@ -5621,9 +5578,7 @@ QString QString::number(ulong n, int base)
|
||||||
*/
|
*/
|
||||||
QString QString::number(int n, int base)
|
QString QString::number(int n, int base)
|
||||||
{
|
{
|
||||||
QString s;
|
return number(qlonglong(n), base);
|
||||||
s.setNum(n, base);
|
|
||||||
return s;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
|
@ -5631,9 +5586,7 @@ QString QString::number(int n, int base)
|
||||||
*/
|
*/
|
||||||
QString QString::number(uint n, int base)
|
QString QString::number(uint n, int base)
|
||||||
{
|
{
|
||||||
QString s;
|
return number(qulonglong(n), base);
|
||||||
s.setNum(n, base);
|
|
||||||
return s;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
|
@ -5641,9 +5594,14 @@ QString QString::number(uint n, int base)
|
||||||
*/
|
*/
|
||||||
QString QString::number(qlonglong n, int base)
|
QString QString::number(qlonglong n, int base)
|
||||||
{
|
{
|
||||||
QString s;
|
#if defined(QT_CHECK_RANGE)
|
||||||
s.setNum(n, base);
|
if (Q_UNLIKELY(base < 2 || base > 36)) {
|
||||||
return s;
|
qWarning("QString::number: Invalid base (%d)", base);
|
||||||
|
base = 10;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
QLocale locale(QLocale::C);
|
||||||
|
return locale.d()->longLongToString(n, -1, base);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
|
@ -5651,9 +5609,14 @@ QString QString::number(qlonglong n, int base)
|
||||||
*/
|
*/
|
||||||
QString QString::number(qulonglong n, int base)
|
QString QString::number(qulonglong n, int base)
|
||||||
{
|
{
|
||||||
QString s;
|
#if defined(QT_CHECK_RANGE)
|
||||||
s.setNum(n, base);
|
if (Q_UNLIKELY(base < 2 || base > 36)) {
|
||||||
return s;
|
qWarning("QString::number: Invalid base (%d)", base);
|
||||||
|
base = 10;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
QLocale locale(QLocale::C);
|
||||||
|
return locale.d()->unsLongLongToString(n, -1, base);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -5671,9 +5634,32 @@ QString QString::number(qulonglong n, int base)
|
||||||
*/
|
*/
|
||||||
QString QString::number(double n, char f, int prec)
|
QString QString::number(double n, char f, int prec)
|
||||||
{
|
{
|
||||||
QString s;
|
QLocalePrivate::DoubleForm form = QLocalePrivate::DFDecimal;
|
||||||
s.setNum(n, f, prec);
|
uint flags = 0;
|
||||||
return s;
|
|
||||||
|
if (qIsUpper(f))
|
||||||
|
flags = QLocalePrivate::CapitalEorX;
|
||||||
|
f = qToLower(f);
|
||||||
|
|
||||||
|
switch (f) {
|
||||||
|
case 'f':
|
||||||
|
form = QLocalePrivate::DFDecimal;
|
||||||
|
break;
|
||||||
|
case 'e':
|
||||||
|
form = QLocalePrivate::DFExponent;
|
||||||
|
break;
|
||||||
|
case 'g':
|
||||||
|
form = QLocalePrivate::DFSignificantDigits;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
#if defined(QT_CHECK_RANGE)
|
||||||
|
qWarning("QString::number: Invalid format char '%c'", f);
|
||||||
|
#endif
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
QLocale locale(QLocale::C);
|
||||||
|
return locale.d()->doubleToString(n, prec, form, -1, flags);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
|
|
Loading…
Add table
Reference in a new issue