Estoy tratando de aprender C leyendo C Programming Language, 2nd Edition. Tengo alguna experiencia en programación, pero no con C.¿Qué le sucede a una variable flotante cuando% d se usa en una impresión?
estoy actualmente en el Capítulo 1. Tengo el siguiente código:
float f;
for (f = 0.0; f <= 3; f += 1.1)
printf("A: %3f B: %6.2f\n", f, f + 0.15);
Se imprime la salida:
A: 0.000000 B: 0.15
A: 1.100000 B: 1.25
A: 2.200000 B: 2.35
Se ve bien.
Ahora puedo cambiar el printf de la siguiente manera:
printf("A: %3d B: %6.2f\n", f, f + 0.15);
la nueva salida es
A: 0 B: 0.00
A: -1610612736 B: 0.00
A: -1610612736 B: -625777476808257557292155887552002761191109083510753486844893290688350183831589633800863219712.00
lo que está pasando aquí? Esperaría que el flotador se convirtiera en int porque usé% d pero eso no fue lo que sucedió. Además, ¿por qué el valor B también salió mal? ¿Qué pasó con f aquí?
No le pediste que lo convirtiera a un int, le dijiste que ** era ** un int! Basura dentro basura fuera. –