Komputer nie zna się na najpr. matematyce

2011-10-15 10:12
von_ilnicki
0

wiecie czemu dla komputera to dzialanie

int main()
{
    long procent = (200 / 2500) * 100;
    cout << procent;
    getch();
}

zawsze wynosi ZERO?!

edytowany 1x, ostatnio: Ktos, 2016-12-13 18:26
To ty nie znasz się na matematyce, a nie komputer. Istnieje w matematyce coś takiego jak dzielenie całkowite, używałeś go pewnie w podstawówce. Wg tego dzielenia 200/2500 wynosi 0 + 200 reszty. Jeśli chcesz dzielić zmiennoprzecinkowo to musisz o tym komputer poinformować: 200.0/2500.0 - Shalom 2011-10-15 10:51
wystarczy tylko jedną liczbę potraktować jako double 200.0 / 2500 lub 200 / 2500.0 - MJay 2011-10-15 14:10

Pozostało 580 znaków

2011-10-15 10:28
2

Long to liczba całkowita.
Z dzielenia 200/2500 wychodzi 0.08, przekładając to na liczbę całkowitą, jest to 0
0*100=0
Liczy dobrze.
Ty źle myślisz.


Pozostało 580 znaków

2011-10-15 10:33
2

użyj double

Nie pomoże, bo dzielisz liczby typu całkowitego. - bogdans 2011-10-15 11:28

Pozostało 580 znaków

2011-10-15 11:19
von_ilnicki
2

z double tak samo

Patryk27 i Shalom napisali co masz zrobić. - bogdans 2011-10-15 11:29

Pozostało 580 znaków

2011-10-15 11:26
2

(200 / 2500) 100 != (200.0 / 2500.0) 100.0

Pozostało 580 znaków

2011-10-15 11:28
2
double procent = ((double)200 / 2500) * 100;
Ale po co tak? Ładniej wygląda zapisanie liczby z częścią dziesiętną. - somekind 2011-10-15 12:14
Niby racja, ale powyższy zapis nadaje się również do dzielenia zmiennych: int a=..,b=.. ;double iloraz = (double)a/b; - bogdans 2011-10-15 12:36

Pozostało 580 znaków

2011-10-15 12:15
2
von_ilnicki napisał(a)

wiecie czemu dla komputera to dzialanie

int main()
{
long procent = (200 / 2500) * 100;
cout << procent;
getch();
}

zawsze wynosi ZERO?!

Masz błąd w procesorze, oddaj go na gwarancji.


"HUMAN BEINGS MAKE LIFE SO INTERESTING. DO YOU KNOW, THAT IN A UNIVERSE SO FULL OF WONDERS, THEY HAVE MANAGED TO INVENT BOREDOM."
ahhahahhhhaaha :D - eloszek 2011-10-15 12:20
Moze ma procek z tej legendarnej serii Intela ;) - cyriel 2011-10-15 16:33

Pozostało 580 znaków

Liczba odpowiedzi na stronę

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