1 /* 2 * print_double(x) has the same effect as printf("%g", x), but is intended 3 * to produce the same formatting across all platforms. 4 */ 5 static void print_double(double x)6print_double(double x) 7 { 8 #ifdef WIN32 9 /* Change Windows' 3-digit exponents to look like everyone else's */ 10 char convert[128]; 11 int vallen; 12 13 sprintf(convert, "%g", x); 14 vallen = strlen(convert); 15 16 if (vallen >= 6 && 17 convert[vallen - 5] == 'e' && 18 convert[vallen - 3] == '0') 19 { 20 convert[vallen - 3] = convert[vallen - 2]; 21 convert[vallen - 2] = convert[vallen - 1]; 22 convert[vallen - 1] = '\0'; 23 } 24 25 printf("%s", convert); 26 #else 27 printf("%g", x); 28 #endif 29 } 30