Miguel Marco Vinicio Sinay Herrarte@miguel-sinay

Hola.

Llevo un rato con una pequeña crisis y ya me empezó a preocupar cómo he asimilado durante años las operaciones aritméticas en programación.

Este es un pequeño programa en C. Lo interesante es que al ejecutar este programa me arroja como resultado 0.

1#include<stdio.h> 2 3int main(){ 4 double val = 0; 5 val = 5 / 2; 6 printf("%f", val); 7}

Ahora, si someto a la misma división a un casteo resulta que el programa allí sí me muestra por pantalla 2.5. :(

1#include<stdio.h> 2 3int main(){ 4 double val = 0; 5 val = (double) 5 / 2; 6 printf("%f", val); 7}

Desde que inicié con C++ en el 2016 hasta ahora yo tenía entendido que una variable de tipo double (incluso float) está en capacidad de guardar por sí sola una cifra con dígitos decimales, sin requerir un casteo.

Lo que me aterra es que hice este mismo experimento en Java y sucede lo mismo. Ahora ya no sé qué pensar...

Si alguien me puede aclarar bien esto se lo agradecería.


Escribe una respuesta