26 lines
592 B
C
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;
|
|
}
|