#include <stdio.h>
#include <stdint.h>
float custom_atof(const char *str) {
// Your logic here
int i;
int x;
int sum=0;
float sum1=0;
for(i=0;((str[i]!='.')&&(str[i]));i++){
if((str[i]>='0')&&(str[i]<='9'))
sum=sum*10+(str[i]-48);
}
float f=0.1;
for(i=i+1;str[i];i++,f=f*0.1){
sum1=sum1+f*(str[i]-48);
}
if(str[0]=='-')
return -(sum+sum1);
else
return (sum+sum1);
return 0.0f;
}
int main() {
char str[101];
fgets(str, sizeof(str), stdin);
// Remove newline
uint8_t i = 0;
while (str[i]) {
if (str[i] == '\n') {
str[i] = '\0';
break;
}
i++;
}
float value = custom_atof(str);
printf("%.2f", value);
return 0;
}
Input
123.45
Expected Output
123.45