Страница 308 упражнение 7
Понятно.
Если у вас есть доступ к C++11, то в нём предусмотрена стандартная функция
stoldISO/IEC 14882:2011 писал(а):
float stof(const string& str, size_t *idx = 0);
double stod(const string& str, size_t *idx = 0);
long double stold(const string& str, size_t *idx = 0);- Effects: the first two functions call strtod(str.c_str(), ptr) and the third function calls strtold(str.c_str(), ptr). Each function returns the converted result, if any. The argument ptr designates a pointer to an object internal to the function that is used to determine what to store at *idx. If the function does not throw an exception and idx != 0, the function stores in *idx the index of the first unconverted element of str.
- Returns: The converted result.
- Throws: invalid_argument if strtod or strtold reports that no conversion could be performed.
Throws out_of_range if strtod or strtold sets errno to ERANGE.
Так как согласно упражнению, всё же, должен использоваться тип
long double.