1,566653e5
Где e - это у нас степень числа. Так вот в одном проекте мне нужно было выбрать из строки такое число. Решил эту задачу регуляркой. Сама регулярка конечно моет и не блещет идеалом и сам код можно улучшить, но что есть. Писал на Qt4 C++
long double convert(QString in)
{
QRegExp rx("([\\-]{0,1}[0-9]{1,}[\\.\\,]{0,1}[0-9]{0,})(|\\e)([\\-]{0,1}[0-9]{0,})");
if(rx.indexIn(in)!=-1)
{
double cel=rx.cap(1).toDouble(); // целая часть
if(rx.cap(2).size()!=0)
{
if(rx.cap(3).size()>0)
{
long double res=pow(cel,rx.cap(3).toDouble());
return res;
}
else
{
QMessageBox::critical(0,QString("Error"),QString("Set a in true format"));
return -100;
}
}
else
{
return cel;
}
}
return in.toDouble();
}
Комментариев нет:
Отправить комментарий