Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- double fstd(char *string)
- {
- int counter = 0; // счетчик для количества цифр
- int length = strlen(string);
- int i = 0;
- double dnum = 0; // конечное число
- int inum = 0;
- while (*(string + i) != '\0') // проверяю, является ли число double'ом
- { // т.е. смотрю количество цифр
- if (*(string + i) > 47 && *(string + i) < 58)
- counter++;
- i++;
- }
- if (counter == length - 1) // если оно меньше на единицу, чем длина всей строки
- { // (потому что точечка) )))))))))))
- i = 0; // то начинаем процесс
- int counter = 0;
- while (*(string + i) != '.') // количество цифр до запятой
- {
- counter++;
- i++;
- }
- double mul = 10;
- i = 0;
- counter--;
- while (*(string + i) != '.') // складываю целую часть в число
- {
- dnum += ((int)*(string + i) - 48) * pow(mul, counter);
- counter--;
- i++;
- }
- i = 0;
- counter = 0;
- bool check = false;
- while (*(string + i) != '\0') // вот тут прикольнее
- { // булевая переменная отвечает за прохождение через точку
- if (check == true) // если это произошло, то можно начинать считать
- {
- counter++;
- dnum += ((int)*(string + i) - 48) * pow(mul, -(counter));
- }
- if (*(string + i) == '.')
- check = true;
- i++;
- }
- return dnum;
- }
- else if (counter == length)
- {
- counter = 0;
- i = 0;
- while (*(string + i) != '\0')
- {
- counter++;
- i++;
- }
- i = 0;
- counter--;
- double mul = 10;
- while (*(string + i) != '\0')
- {
- inum += ((int)*(string + i) - 48) * pow(mul, counter);
- counter--;
- i++;
- }
- return inum;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement