2

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?

Farhad
  • 4,119
  • 8
  • 43
  • 66
vlad_tepesch
  • 6,681
  • 1
  • 38
  • 80

1 Answers1

4

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();
Nikolai Shalakin
  • 1,349
  • 2
  • 13
  • 25