#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;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nPgojaW5jbHVkZSA8c3N0cmVhbT4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmRvdWJsZSBzdHJpbmdfdG9fZG91YmxlKCBjb25zdCBzdGQ6OnN0cmluZyYgcyApCiB7CiAgIHN0ZDo6aXN0cmluZ3N0cmVhbSBpKHMpOwogICBkb3VibGUgeDsKICAgaWYgKCEoaSA+PiB4KSkKICAgICByZXR1cm4gMDsKICAgcmV0dXJuIHg7CiB9IAogCiBkb3VibGUgcGFyc2VGbG9hdChjb25zdCBzdGQ6OnN0cmluZyYgaW5wdXQpewogICAgY29uc3QgY2hhciAqcCA9IGlucHV0LmNfc3RyKCk7CiAgICBpZiAoISpwIHx8ICpwID09ICc/JykKICAgICAgICByZXR1cm4gLTE7CiAgICBpbnQgcyA9IDE7CiAgICB3aGlsZSAoKnAgPT0gJyAnKSBwKys7CgogICAgaWYgKCpwID09ICctJykgewogICAgICAgIHMgPSAtMTsgcCsrOwogICAgfQoKICAgIGRvdWJsZSBhY2MgPSAwOwogICAgd2hpbGUgKCpwID49ICcwJyAmJiAqcCA8PSAnOScpCiAgICAgICAgYWNjID0gYWNjICogMTAgKyAqcCsrIC0gJzAnOwoKICAgIGlmICgqcCA9PSAnLicpIHsKICAgICAgICBkb3VibGUgayA9IDAuMTsKICAgICAgICBwKys7CiAgICAgICAgd2hpbGUgKCpwID49ICcwJyAmJiAqcCA8PSAnOScpIHsKICAgICAgICAgICAgYWNjICs9ICgqcCsrIC0gJzAnKSAqIGs7CiAgICAgICAgICAgIGsgKj0gMC4xOwogICAgICAgIH0KICAgIH0KICAgIGlmICgqcCkgY291dCA8PCAoIkludmFsaWQgbnVtZXJpYyBmb3JtYXQiKTsKICAgIHJldHVybiBzICogYWNjOwp9CgppbnQgbWFpbigpIHsKCWRvdWJsZSB2YWwgPSBwYXJzZUZsb2F0KCIxMzIuMTIzNDU2NDU2NDU2NDUiKTsKCWNvdXQucHJlY2lzaW9uKDIwKTsKCWNvdXQgPDwgdmFsOwoJcmV0dXJuIDA7Cn0=