QChar получить цифровое значение, если `isDigit()`

Как получить значение цифр элегантно?

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 ответ

Решение

Есть метод int QChar::digitValue() const который:

возвращает числовое значение цифры или -1, если символ не является цифрой.

Итак, вы можете написать:

QChar qc('4');
int val = qc.digitValue();
Другие вопросы по тегам