W przypadku, gdy chcemy zapisać wynik dzielenia dwóch liczb, które nie muszą być całkowite, właściwym wyborem zdecydowanie jest użycie typu float. Typ float pozwala na przechowywanie wartości rzeczywistych, również z częściami ułamkowymi, co jest kluczowe przy operacjach dzielenia. W praktyce programistycznej bardzo często pojawia się potrzeba wykonywania obliczeń, w których wynik nie jest liczbą całkowitą – choćby zwykłe dzielenie 5 przez 2 daje 2.5. Gdybyśmy zapisali taki wynik w zmiennej typu integer, stracilibyśmy część ułamkową (w niektórych językach nawet zostanie zaokrąglone w dół), co jest niezgodne z zasadami precyzyjnych obliczeń. Moim zdaniem, szczególnie w aplikacjach finansowych czy naukowych, gdzie precyzja jest bardzo istotna, korzystanie z float lub nawet double jest uznawane za dobrą praktykę. Trzeba tylko pamiętać, że float ma pewne ograniczenia, jeśli chodzi o dokładność – dla bardzo dokładnych obliczeń lepiej stosować typy double lub specjalne biblioteki. Standardy programistyczne, np. w C czy Javie, jasno określają, że typ float jest przeznaczony właśnie do przechowywania wartości zmiennoprzecinkowych. Tak więc, wybierając float, masz pewność, że Twoje wyniki dzielenia nie zostaną zniekształcone przez utratę części ułamkowej. To trochę jak z matematyki w szkole – nie zawsze wszystko da się ładnie podzielić bez reszty i komputer powinien to odzwierciedlać.
Jeśli chodzi o zapis wyniku dzielenia dwóch liczb, wybór typu zmiennej jest naprawdę kluczowy. Wiele osób początkowo zakłada, że integer wystarczy, bo przecież większość operacji arytmetycznych kojarzy się z liczbami całkowitymi. Jednak integer, zgodnie ze swoją definicją, przechowuje tylko liczby całkowite i przy próbie zapisania wyniku dzielenia, np. 7 przez 3, wynik zostanie obcięty do najbliższej liczby całkowitej (czyli 2). To prowadzi do utraty precyzji, co w wielu zastosowaniach – nawet prostych kalkulatorach – jest po prostu błędem logicznym. Jeszcze bardziej nietrafionym wyborem jest typ char, który przeznaczony jest do przechowywania pojedynczego znaku, a nie liczb, więc nie ma możliwości zapisania w nim wyniku dzielenia dwóch liczb. Typ boolean natomiast to już zupełnie inna para kaloszy, bo on przyjmuje tylko dwa stany: prawda albo fałsz, zero lub jeden – żadne operacje matematyczne nie mają tutaj większego sensu. Z mojego doświadczenia wynika, że osoby początkujące często nie rozróżniają tych typów i próbują „na siłę” używać inta albo nawet booleana, nie zastanawiając się, co się dzieje z częścią ułamkową. Warto pamiętać, że w językach takich jak C, Java czy Python, typy zmiennoprzecinkowe (float, double) są stworzone właśnie do takich zastosowań. Dobra praktyka branżowa mówi, by zawsze dobierać typ zmiennej do rodzaju przechowywanych danych – dla wyników dzielenia liczb rzeczywistych tylko float lub double. Ignorowanie tej zasady prowadzi do ukrytych, trudnych do wykrycia błędów w programach, co potem wychodzi dopiero na etapie testowania lub, co gorsza, w produkcji. Zdecydowanie lepiej od razu stosować właściwy typ i nie liczyć na to, że „jakoś to będzie”.