Problem chyba obliczeniowy, okienka, float.

0

Link do kodu:
http://textsave.de/YfJ

Link do całego projektu:

http://speedy.sh/ukUWp/tnl.rar

Mój problem polega na obliczaniu minut, celem programu jest obliczanie czasu pozostałego do wbicia poziomu w pewnej grze. Przy obliczaniu dla danych z zakresu poziomów 6-99(resztę dodam jak chociaż 1 będzie działać poprawnie) godziny są zliczane poprawnie, zaś minuty w ogóle. Więc, cokolwiek nie wpiszę nigdy nie wyjdzie 17(int) bądź 16,5625(float) dla danych podanych poniżej :

user image

W czym problem ? Otóż:

float finalm=((TNL-192)/192)*60; 

TNL = 245, więc:

((245-192)/192*60= (53/192)60 = 0,276041666666666760 = 16,5625 ~ 17 minut w zaokrągleniu (wiem że przy danych typu (TNL-192)>192 będzie błąd obliczeń (przy większej ilości godzin zastosuję zmienną która będzie ewentualne godziny odejmować, by zostały tylko minuty do liczenia)), ale nie potrafię zrozumieć czemu 17 = 0 (na przykładzie jest zastosowany float więc powinno niby być 16,5625, ale jak zmienię to na int to i tak wyjdzie na 0) ? Label16 (na prawo od mins) powinien wyświetlić 16,5625 dla finalm=float bądź 17 dla finalm=int. A przynajmniej tak mi się wydaje ^^

O co chodzi ?

0
float a=TNL/192.0;
float finalm=((TNL-192)/192.0)*60;

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