#include <stdio.h>
#include <stdint.h>
float custom_atof(const char *str){
int sign = 1;
float num = 0.00f;
float scale = 0.1f;
if(*str == '+') str++;
else if (*str == '-'){
sign = -1;
str++;
}
while(*str >= '0' && *str <= '9'){
num = num*10+(*str - '0');
str++;
}
if(*str == '.') str++;
while(*str >= '0' && *str <= '9'){
num += scale * (*str - '0');
scale *= 0.1f;
str++;
}
return sign * num;
}
int main(){
char str[101];
fgets(str, sizeof(str), stdin);
int i = 0;
while(str[i]){
if(str[i] == '\n'){
str[i] = '\0';
break;
}
i++;
}
printf("%.2f", custom_atof(str));
return 0;
}
Input
123.45
Expected Output
123.45