QChar get digit value if `isDigit()`

2.6k Views Asked by At

How to get the digits value elegantly?

QChar qc('4');
int val=-1;
if(qc.isDigit()){
   val = qc.toLatin1() - '0';
}

does not look that good.

Neither does converting to QString since creating a QString object and start parsing just for this purpose seems to be overkill.

QChar qc('4');
int val=-1;
if(qc.isDigit()){
   val = QString(qc).toInt();
}

Any better options or interfaces that I have missed?

1

There are 1 best solutions below

1
Nikolai Shalakin On BEST ANSWER

There is a method int QChar::digitValue() const which:

returns the numeric value of the digit, or -1 if the character is not a digit.

So, you can write:

QChar qc('4');
int val = qc.digitValue();