Files
42_INT_01_libft/srcs/ft_modf.c
2026-05-10 01:43:59 +02:00

26 lines
592 B
C

#include "libft.h"
#include <stdio.h> // tmp for printf, for float debug
/**
* Splits a double into its integer and fractional parts,
* it returns the fractional part,
* and stores the integer part in the in_part param (if not null)
* e.g.:
* -3.7 → -3.0 and -0.7 (returns -0.7)
*/
double ft_modf(double x, double *store_int_part)
{
// extract the integer part by casting to long long
long long integer = (long long)x;
if (store_int_part != NULL)
{
*store_int_part = (double)integer;
}
// compute the fractional part
double frac_part = x - integer;
return frac_part;
}