output_double uses binary format for very large or small double
add stdc-predef.h headers which the cpp automatically includes