#include <iostream>
#include <string>
#include <sstream>
using namespace std;

double string_to_double( const std::string& s )
 {
   std::istringstream i(s);
   double x;
   if (!(i >> x))
     return 0;
   return x;
 } 
 
 double parseFloat(const std::string& input){
    const char *p = input.c_str();
    if (!*p || *p == '?')
        return -1;
    int s = 1;
    while (*p == ' ') p++;

    if (*p == '-') {
        s = -1; p++;
    }

    double acc = 0;
    while (*p >= '0' && *p <= '9')
        acc = acc * 10 + *p++ - '0';

    if (*p == '.') {
        double k = 0.1;
        p++;
        while (*p >= '0' && *p <= '9') {
            acc += (*p++ - '0') * k;
            k *= 0.1;
        }
    }
    if (*p) cout << ("Invalid numeric format");
    return s * acc;
}

int main() {
	double val = parseFloat("132.12345645645645");
	cout.precision(20);
	cout << val;
	return 0;
}