La Red de Conocimientos Pedagógicos - Currículum vitae - Problema de conversión de tipos forzados en lenguaje C

Problema de conversión de tipos forzados en lenguaje C

¿Quién te lo dijo? ¿O lo probaste tú mismo? ¿Qué entorno y qué versión del compilador?

Hasta donde yo sé, y según mis pruebas, el resultado debería ser 0.0000000 en ambos casos.

Debido a que su A se define como tipo int, no hay diferencia entre 1/a y 1/2. Los resultados calculados son todos 0,5 y luego se redondean a 0,0. Si se define como tipo doble, es 0,5. ¿Es 0,5 cuando se convierte a doble?

En el lenguaje C general, si desea utilizar números de punto flotante para calcular números enteros, debe agregar un decimal, como 1/2, que debe cambiarse a 1,0/2. De esta forma, se utilizarán números de coma flotante en el proceso intermedio y el resultado es 0,500000.