Wyświetlanie wyniku zmiennoprzecinkowego

0

Witam, mam pytanie dotyczące wyświetlania wyniku zmiennoprzecinkowego w C, mianowicie:

Mam 2 fragmenty kodu:

1

float zmienna = 7;
zmienna /= 2;
printf("%.1f", zmienna);

2

float zmienna = 7/2;
printf("%.1f", zmienna);

W pierwszym przypadku wyświetlona wartość to 3.5, a w drugim 3.0. I tutaj moje pytanie: skąd bierze się różnica w wyniku?

0

Z konwersji typów. W pierwszym przypadku dzielisz floata przez inta -> wynik będzie floatem. W drugim dzielisz inta przez inta -> wynik jest intem, który rzutujesz na floata.

0

bo w drugim masz zwykłe działanie na liczbach całkowitych więc i wynik będzie całkowity. Tak mi się wydaje

0

Dzięki za odpowiedzi. Odkryłem, że w II przypadku wystarczy wpisać 7.0 i już działa normalnie. :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1