#include <stdio.h>
#include "libft.h"

double ft_atof(const char *str)
{
	double nbr;
	int i;
	int negatif;
	double fraction;

	i = 0;
	negatif = 1;
	nbr = 0.0;
	fraction = 1.0;

	// Skip leading whitespace
	while ((str[i] == ' ') || (str[i] > 8 && str[i] < 14))
		i++;

	// Handle optional sign
	if (str[i] == '-')
		negatif = -1;
	if (str[i] == '+' || str[i] == '-')
		i++;

	// Parse integer part
	while (str[i] >= '0' && str[i] <= '9')
		nbr = nbr * 10.0 + (str[i++] - '0');

	// Parse fractional part if '.' is present
	if (str[i] == '.')
	{
		i++;
		while (str[i] >= '0' && str[i] <= '9')
		{
			fraction /= 10.0;
			nbr += (str[i++] - '0') * fraction;
		}
	}

	return (nbr * negatif);
}
