/* ************************************************************************** */ /* */ /* ::: :::::::: */ /* ft_atof.c :+: :+: :+: */ /* +:+ +:+ +:+ */ /* By: gbrochar +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2019/02/06 14:47:22 by gbrochar #+# #+# */ /* Updated: 2019/02/21 15:34:04 by gbrochar ### ########.fr */ /* */ /* ************************************************************************** */ #include "libft.h" double ft_atof(const char *str) { char *tmp; double floating_part; double integer_part; integer_part = ft_atoi(str); floating_part = 0; tmp = ft_strchr(str, '.'); if (tmp) { floating_part = ft_atoi(++tmp); while (*tmp >= '0' && *tmp <= '9') { floating_part /= (double)10; tmp++; } } if (integer_part < 0) return (-1.0 * (fabs(integer_part) + floating_part)); return (integer_part + floating_part); }