2008-09-16 22 views

Respuesta

8

% [anchura]. [Precisión]

Anchura debe incluir el punto decimal.

% 8,2 significa 8 caracteres de ancho; 5 dígitos antes del punto y 2 después. Un personaje está reservado para el punto.

5 + 1 + 2 = 8

7

Lo que queremos es un modificador:

sprintf(S, "%.10f", val); 

hombre sprintf tendrá muchos más detalles sobre los especificadores de formato.

+0

Solo una nota: si está usando un doble, ¿sería más correcto usar "lf"? –

+0

No,% f es correcto para el doble. Los flotadores – ChrisN

+0

solo tienen unos 6 dígitos de precisión. usa% lf para un doble. – EvilTeach

1

Tenga cuidado: la salida de sprintf variará a través de la configuración C. Esto puede o no ser lo que quieres. Consulte LC_NUMERIC en las páginas de documentación/manual de configuración regional.

1

%f es para valores flotantes.

Pruebe usar %lf en su lugar. Está diseñado para dobles (que solía llamarse flotadores largos).

double x = 3.14159265;
printf ("15.10lf \ n", x);

Cuestiones relacionadas