problem z float

0

Prosty program:

#include <stdio.h>

int main()
{
	float x;

	x = 1/5;

	printf("%f", x);

	getch();
	return 0;
}

Zwrca mi:

0.000000

Męczę się z tym dużo czasu i nie moge skminić czemu tak się dzieje. Korzystam z Visual Studio 2010.

0

Bo dzielisz dwie liczby całkowite. 1.0f/5.0f (wystarczy, żeby jedna była typu zmiennoprzecinkowego)

Wynik dzielenia 1/5 (int/int) to 0 (int). I to, że potem zostanie on przypisany do zmiennej typu float już niczego nie zmieni.

0

http://stackoverflow.com/questions/3602827/what-is-the-behavior-of-integer-division-in-c

Wystarczy, że jeden z argumentów będzie floatem - np. 1.0/5

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