如果`isDigit()`,QChar得到数字值

时间:2017-08-24 10:15:41

标签: c++ qt qchar

如何优雅地获取数字值?

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

我错过了哪些更好的选项或界面?

1 个答案:

答案 0 :(得分:3)

有一种方法int QChar::digitValue() const which

  

返回数字的数值,如果字符不是,则返回-1   一个数字。

所以,你可以写:

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