Dziwne liczenie w c++

Dziwne liczenie w c++
NK
  • Rejestracja:ponad 4 lata
  • Ostatnio:około 3 lata
  • Postów:29
0

Wiadomo, jak masz liczbe zmiennoprzecinkową i dodajesz/odejmujesz/dzielisz itd. z całkowitą to wynik będzie zmiennoprzecinkowy.
To dlaczego 19/60 to 0 anie 0.31? Niczym sie to nie różni od pierwszego działania gdzie już przecinek się pojawia. Poza tym zadanie z prata rozdzial 3. Mialo miejsce to samo zachowanie jak tu, dlatego pytam.

Kopiuj
#include <iostream>

using namespace std;

int main()
{
    {
    int x;
    double y;
    x = 70;
    y = x / 1.123;

    cout << y;
    }
/////////////////////////////////////// w powyzszym wynik double  WYNIK 62.333
    {
    int x;
    double y;
    x = 19;
    y = x / 60;
    cout << endl << y;
    }
////////////////////////////////////// w powyzszym wynik 0 (nagle nie double?) WYNIK 0 zamiast 0.31666
    {
    double x;
    double y;
    x = 19;
    y = x / 60;
    cout << endl << y;
    }
////////////////////////////////////// w powyzszym wynik znow double jak w 1 tyle ze 1 i 2 przyklad sie nie roznia WYNIK 0.31666

    return 0;
}

W programie z ksiazki Prata wynik dodawania w kodzie gdzie obie wartosci są dodawane nadal dziwnie działa bo dodając je wychodzi +1 a tu jednak nie..image

edytowany 1x, ostatnio: NewbieKodeRR
enedil
Nie rozumiem pytania? Wynik dzielenia dwóch liczb całkowitych jest całkowity. Tak mówi standard C++.
NK
Widzisz, wystarczylo dopisac .0 do drugiego przykładu, to jest ta głupia rzecz, której nie zobaczyłem.... a odniesiesz się co do screena?
enedil
Nie, bo nie rozumiem co się na screenie dzieje.
ZD
co to ma wspólnego z Qt ?Kolejne apetyty za frameworkami bez podstaw języka ?
kq
Moderator C/C++
  • Rejestracja:prawie 12 lat
  • Ostatnio:5 dni
  • Lokalizacja:Szczecin
6

Wynik działania na dwóch liczbach całkowitych będzie całkowity.

Kopiuj
int x;
double y;
x = 19;
y = x / 60;

W linii y = x / 60 przypisujesz do y wynik wyrażenia x / 60. x / 60 to dzielenie int/int, a jego wynikiem jest 0


Azarien
  • Rejestracja:ponad 21 lat
  • Ostatnio:3 minuty
1

Dziel przez 60.0

_13th_Dragon
  • Rejestracja:prawie 20 lat
  • Ostatnio:17 dni
1

lub: (y = x) /= 60;


Wykonuję programy na zamówienie, pisać na Priv.
Asm/C/C++/Pascal/Delphi/Java/C#/PHP/JS oraz inne języki.

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.