typy zmiennych, dzielenie

typy zmiennych, dzielenie

Wątek przeniesiony 2015-01-14 10:28 z C/C++ przez ŁF.

  • Rejestracja: dni
  • Ostatnio: dni
0

dlaczego taki kod po wpisaniu a=6, b=5 daje wynik 1 skoro wynik jest typem float czyli zmiennoprzecinkowy?

Kopiuj
#include <iostream>

using namespace std;
int a,b;
float c;
int main()
{
    cin >> a;
    cin >> b;
    c=a/b;
    cout<< "=" <<c;
    return 0;
}
Zellus
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
  • Postów: 474
1

Tak jest ponieważ dzielisz int przez int, otrzymując kolejny int. Dopiero po wykonaniu tej operacji, otrzymana wartość jest rzutowana na float.

  • Rejestracja: dni
  • Ostatnio: dni
0

a jeśli będę dzielił np. double przez int i w wyniku chcę float, to jaki typ będzie mi rzutowało na float po wykonaniu dzielenia?

gośćabc
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Szczecin
  • Postów: 500
1
Kopiuj
#include <iostream>

int main()
{
    int a = 5, b = 2;
    std::cout << (double)(a) / b;
    
    return 0;
}
_13th_Dragon
  • Rejestracja: dni
  • Ostatnio: dni
0

Jak wyżej lub tak:

Kopiuj
   std::cout<<a/(double)b;

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.