Różnica pomiędzy dzieleniem 1/2 a liczbą 0.5 - typ double

0

Witam
Programowania uczę się już od kilku lat, jednak dopiero teraz spotkałem się z następującym problemem.
Po zadeklarowaniu zmiennej typu double i przypisaniu jej wartości 1/2 wynikiem jest wartość 0, zamiast 0.5.

double pomo45;
double pomo46;

pomo45 = 1/2;

if (pomo45 == 0){

	pomo46 = 0.5555555;

} 

Zmienna pomo46 przyjmuje wartość 0.5555555, co jest tego przyczyną?

3

/ to operator dzielenia całkowitego, wynik jest liczbą całkowitą (niezależnie od typu zmiennej do której przypisujesz ten wynik). Zmień na

pomo45 = 1.0/2;
3

jak wyżej lub:

  1. 1/2.0
  2. (double)1/2
  3. 1/(double)2

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