Especificador de largura de impressão para manter a precisão do valor de ponto flutuante

Tem algumaprintf especificador de largura que pode ser aplicado a um especificador de ponto flutuante que formata automaticamente a saída para o número necessário deDígitos significantes de tal forma que ao escanear a string de volta, o valor original do ponto flutuante é adquirido?

Por exemplo, suponha que eu imprima umfloat a uma precisão de2 casas decimais:

float foobar = 0.9375;
printf("%.2f", foobar);    // prints out 0.94

Quando eu digitalizo a saída0.94, Eu não tenho nenhuma garantia de conformidade com os padrões que receberei o original0.9375 valor de ponto flutuante de volta (neste exemplo, eu provavelmente não vou).

Eu gostaria de dizer uma maneiraprintf para imprimir automaticamente o valor de ponto flutuante para o número necessário deDígitos significantes para garantir que ele possa ser escaneado de volta para o valor original passado paraprintf.

Eu poderia usar algumas das macros emfloat.h paraderivar a largura máxima passar paraprintf, mas já existe um especificador para imprimir automaticamente o número necessário deDígitos significantes - ou pelo menos até a largura máxima?

questionAnswers(7)

yourAnswerToTheQuestion