Komputer nie zna się na najpr. matematyce

Komputer nie zna się na najpr. matematyce
  • Rejestracja: dni
  • Ostatnio: dni
0

wiecie czemu dla komputera to dzialanie

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

zawsze wynosi ZERO?!

Patryk27
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
  • Postów: 13042
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.

PoziomeQ
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 133
2

użyj double

  • Rejestracja: dni
  • Ostatnio: dni
2

z double tak samo

Xitami
  • Rejestracja: dni
  • Ostatnio: dni
2

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

Ktos
  • Rejestracja: dni
  • Ostatnio: dni
2
Kopiuj
double procent = ((double)200 / 2500) * 100;
somekind
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
2
von_ilnicki napisał(a)

wiecie czemu dla komputera to dzialanie

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

zawsze wynosi ZERO?!

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

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.