Błędna liczba po wrzuceniu wyniku do kontrolki

0

Witam,
wykonuje polecenie :

long suma = 0;
suma = ((24 * 60 * 60) / Convert.ToInt32(TB_Sek.Text)) * Convert.ToInt32(TB_Dni_Laczny_Czas.Text) * ilosc_znakow_rekordu; // np (24*60*60)/1 *(365*100)

Wyrzucam sobie wynik do kontrolki i otrzymuję liczbę:-1 141 367 295
pytanie: Czemu tak się dzieje? Czytam tutaj na forum, że "long - przyjmuje liczby całkowite z zakresu [–9,223,372,036,854,775,808 to 9,223,372,036,854,775,807]", a wygląda to tak jakby zmienna się przepełniała i liczyła i "przeskakiwała" na swoją najmniejszą wartość.

0

Zamiast tego dziwoląga użyj klasy TimeSpan i jednego z jej wielu konstruktorów.

2

Bo liczysz na int-ach a wynik dopiero wstawiasz do zmiennej long.

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