Gracias por el A2A!
Considere la siguiente pieza de código:
flotador a = 1;
printf (“% f”, a);
- ¿Cuáles son las impresoras que utilizan las compañías de imprentas para imprimir fotos o postales de 4 x 6 en una hoja grande y luego cortarlas?
- Cómo escanear imágenes en una impresora HP 1515
- ¿Qué tinta se usa para la impresión de bloques a mano en tela?
- Cómo detectar un atasco de impresora
- ¿Hay alguna manera de imprimir en una impresora remota?
Salida: 1.000000
Y ahora este código:
printf (“% f”, 1);
Salida: valor de basura
La razón de esto es que cuando una variable se declara como flotante, el compilador sabe que cualquier valor que contenga esa variable, contendrá la parte decimal y la parte fraccionaria. Si no se proporciona la parte fraccionaria, se supone que es un número entero (todavía un número de coma flotante) con la parte fraccionaria 0. En la instrucción printf , se especifica el especificador de formato “% f” y el tipo de coincidencia y la salida esperada. Ahora, llegando al segundo caso, la salida será un valor basura ya que el especificador de formato es “% f”, usado para números de coma flotante, y el valor es 1 (puramente entero). Aquí es al revés de lo que sucedió en el primer caso. El compilador mira primero el valor (1) y luego detecta su tipo (int). Por lo tanto, la coincidencia no se produce y se muestra el valor de basura.