#include <stdio.h>

void main()
{
double d = -6880156672.023001;

float f = (float)d;

printf("f = %f\n", f);
printf("d = %f\n", d);
}

結果
f = -6880156672.023001
d = -6880156672.023001

何でですか?floatって7桁じゃないの?