vlad_tepesch
vlad_tepesch

Reputation: 6889

QChar get digit value if `isDigit()`

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?

Upvotes: 2

Views: 2870

Answers (1)

Nikolai Shalakin
Nikolai Shalakin

Reputation: 1484

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();

Upvotes: 4

Related Questions