typedef (malloc(2*sizeof(long double))) Big_Double; Big_Double factrl; #### my $n = gammln(1000 + 1.0)/log(10.0); my $exp = int($n); my $mantissa = 10.0 ** ($n - $exp); printf "${mantissa}e$exp\n";