Можно ли записать в файл произвольный дубль в удобочитаемой для человека форме и получить точно , все 64-битные одинаковые двойные при чтении обратно?
Конечно, это возможно путем записи двойного числа в виде двоичных данных, например:
static void writedouble(FILE *fp, double d) {
fwrite(&d, sizeof(double), 1, fp);
}
Но это не то, что я хочу. Я хочу, чтобы double
было написано в удобочитаемой форме, например, так:
static void writedouble(FILE *fp, double d) {
fprintf(fp, "%.14g", d);
}
А затем снова прочитать его, например, так:
static void readdouble(FILE *fp, double *d) {
fscanf(fp, "%.14g", d);
}
После этого яхотите проверить, одинаковы ли оба double
, например:
printf("Check: %d\n", memcmp(&in_double, &out_double, sizeof(double));
Возможно ли это вообще или возможно получить только битовый double
при сохранении его в виде двоичных данных?