Witam.
Mam ,zapewne, cholenie głupi problem. Pisze program który na podstawie podanych współrzednych geograficznych miast wyliczy ich odległości od danego punktu. Funkcja działa, ładnie oblicza - problem jednak zupełnie z innej strony mam.
Posiadam klasę location
class location
{
public:
char *country;
//char *name;
string name;
string zipcode;
float distance;
int area;
float x;
float y;
location()
{
x = 0.0f;
y = 0.0f;
}
do której ściagam dane o miastach (kod pocztowy, wspólrzedne itp.)
Teraz gdy wywołuję funkcję
float getdistance(float x1,float y1,float x2,float y2)
z samodzielnym wpisaniem danych
np. getdistance(52.4333f, 15.25f, 52.25f, 21.0f);
- oblicza bez problemu. ~392
Gdy jednak wpisuję to np. tak
loc[0].x = 52.4333f;
loc[0].y = 15.25f;
loc[2].x = 52.25f;
loc[2].y = 21.0f;
getdistance(loc[0].x,loc[0].y,loc[2].x,loc[2].y)
-dostaję jakś zupełnie głupi wynik. ~4959
Wydaje mi sie, że samej funkcji getdistance podawać nie trzeba - coś tutaj nie tak z floatami jest. Podaję takie same wartości - jednak gdy wczytuje je z klasy to zyskuję błędny wynik ;/
Zapewne gdzieś zapomniałem o jakimś konwertowaniu, czort wie.