У меня есть QString в моих источниках.
Поэтому мне нужно преобразовать его в целое число без "Kb".
Я пробовал Abcd.toInt(), но он не работает.
QString Abcd = "123.5 Kb"
Ответ 1
У вас нет всех цифр в строке. Итак, вам нужно разделить пространство
QString Abcd = "123.5 Kb";
Abcd.split(" ")[0].toInt(); //convert the first part to Int
Abcd.split(" ")[0].toDouble(); //convert the first part to double
Abcd.split(" ")[0].toFloat(); //convert the first part to float
Ответ 2
Строка, содержащаяся здесь, содержит номер с плавающей запятой с единицей. Я бы рекомендовал разделить эту строку на число и единицу с помощью QString::split().
Затем используйте toDouble(), чтобы получить число с плавающей запятой и округлить по мере необходимости.
Ответ 3
Не забудьте проверить, было ли успешным преобразование!
bool ok;
auto str= tr("1337");
str.toDouble(&ok); // returns 1337.0, ok set to true
auto strr= tr("LEET");
strr.toDouble(&ok); // returns 0.0, ok set to false
Ответ 4
В качестве предложения вы также можете использовать QChar::digitValue() для получения числового значения цифры. Например:
for (int var = 0; var < myString.length(); ++var) {
bool ok;
if (myString.at(var).isDigit()){
int digit = myString.at(var).digitValue();
//DO SOMETHING HERE WITH THE DIGIT
}
}