如果`isDigit()`,QChar 获取数字值

QChar get digit value if `isDigit()`

如何优雅的获取digits值?

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

看起来不太好。

转换为 QString 也没有,因为创建 QString 对象并为此目的开始解析似乎有点矫枉过正。

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

我错过了任何更好的选项或界面吗?

有个方法int QChar::digitValue() const which:

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

所以,你可以这样写:

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