#include
<
iostream
>
#include < string >
#include < stdlib.h >
#include < math.h >
using namespace std;
bool stringready( string str)
... {
int i=0;
if((unsigned)(str.at(i))==45)
i++;
for(;i<str.length();i++)
...{
unsigned one=(unsigned)(str.at(i));
if(one>=48&&one<=57||one==46)
;
else
return 0;
}
return 1;
}
double stringtodouble( string str)
... {
int i=0,sign;
double integer=0;
double decimal=0;
int dot=str.length();
if((unsigned)(str.at(i))==45)
...{
sign=-1;
i++;
}
else
sign=1;
for(;i<str.length();i++)
...{
unsigned one=(unsigned)(str.at(i));
if(one>=48&&one<=57)
if(i<dot)
integer=(one-48)+integer*10;
else
decimal=decimal+(one-48)/pow(10,i-dot);
else
if(one==46)
dot=i;
}
return sign*(integer+decimal);
}
void main()
... {
string str1="-123.45";
if(stringready(str1))
cout<<stringtodouble(str1);
}
#include < string >
#include < stdlib.h >
#include < math.h >
using namespace std;
bool stringready( string str)
... {
int i=0;
if((unsigned)(str.at(i))==45)
i++;
for(;i<str.length();i++)
...{
unsigned one=(unsigned)(str.at(i));
if(one>=48&&one<=57||one==46)
;
else
return 0;
}
return 1;
}
double stringtodouble( string str)
... {
int i=0,sign;
double integer=0;
double decimal=0;
int dot=str.length();
if((unsigned)(str.at(i))==45)
...{
sign=-1;
i++;
}
else
sign=1;
for(;i<str.length();i++)
...{
unsigned one=(unsigned)(str.at(i));
if(one>=48&&one<=57)
if(i<dot)
integer=(one-48)+integer*10;
else
decimal=decimal+(one-48)/pow(10,i-dot);
else
if(one==46)
dot=i;
}
return sign*(integer+decimal);
}
void main()
... {
string str1="-123.45";
if(stringready(str1))
cout<<stringtodouble(str1);
}