Convert a number with a floating point in string format to a float.float StringToFloat(string input)
{
float ret = 0.0f;
bool fp = false, neg = false;
int fpcount = 0;
for (size_t i = 0; i < input.size(); i++)
{
if (0 == i && '-' == input[i])
{
neg = true;
continue;
}
if (fp)
fpcount++;
if ('.' != input[i])
{
int curr = static_cast<int>(input[i]) - 48;
if (curr < 0 || curr > 9)
throw "Bad characters in the input.";
ret *= 10;
ret += curr;
}
else
{
if (!fp)
fp = true;
else
throw "Multiple '.' in the input.";
}
}
if (fp)
ret /= pow(10, fpcount);
if (neg)
ret *= -1;
return ret;
}
|