Wynik dzielenia dwóch liczb całkowitych często nie jest liczbą całkowitą (np. 5/2 = 2,5). Aby taki wynik dało się zapisać bez utraty części ułamkowej, potrzebny jest typ zmiennoprzecinkowy.
Odpowiedź "float" jest poprawna, ponieważ float przechowuje liczby z częścią ułamkową (w przybliżeniu, z ograniczoną precyzją), więc pozwala zapisać rezultat dzielenia "dokładniej" niż typ całkowity, który nie ma miejsca na ułamek.
Dlaczego pozostałe odpowiedzi nie pasują:
- "short" – typ całkowity; nie przechowuje części ułamkowej, więc wynik dzielenia zapisany w takim typie nie zachowa ułamka.
- "int" – również całkowity; nawet jeśli ma większy zakres niż short, nadal nie zapisze wartości po przecinku.
- "long" – także całkowity; większy zakres nie oznacza możliwości zapisu ułamka. To częsty błąd: mylenie zakresu z precyzją zapisu wyniku dzielenia niecałkowitego.
W praktyce programistycznej, gdy zależy Ci na wyniku dzielenia z częścią ułamkową, używa się typu zmiennoprzecinkowego lub wykonuje rzutowanie przynajmniej jednego argumentu dzielenia na typ zmiennoprzecinkowy. W wielu językach spotkasz też typ double, zwykle dokładniejszy niż float, ale w tym pytaniu nie występuje wśród opcji.