Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Typ int oraz double

Ostatnio zmodyfikowano 2015-11-02 02:03
Autor Wiadomość
lukasz427
Temat założony przez niniejszego użytkownika
Typ int oraz double
» 2015-11-01 17:06:48
Witam.

Mam problem ze zrozumieniem dzialania bardzo prostego programu.
Oto on.Program banalny..Chodzi mi o to aby komputer obliczal wynik z dokladnoscia dziesietna.Wynik jest typu DOUBLE jenak kompilator "ucina" dziesietna czesc wyniku.np. Podaje 56.Oczekuje wyniku 5.6 tymczasem jest 5.Nie rozumiem tu czegos przeciez okreslilem ze wynik ma byc typu DOUBLE?
C/C++
#include<iostream>

int main()
{
   
    int licznik;
    int manownik = 10;
   
    std::cout << "Podaj licznik";
   
    std::cin >> licznik;
   
    double wynik = licznik / 10;
    std::cout << "Wynik wynosi" << wynik << "";
   
}

Problem znika jesli zadeklaruje nazwe LICZNIK rowniez typem DOUBLE zamiast INT.Wtedy jest tak jakbym tego oczekiwal.Program oblicza wynik z dokladnoscia po przecinku.Przykladowe 56/10=5.6.

Moje pytanie brzmi .Dlaczego musze deklarowac licznik rowniez typem DOUBLE(tak samo jak wynik)? -podaje tylko liczby calkowite w liczniku.


Z gory bardzo dziekuje

Lukasz


P-139480
RazzorFlame
» 2015-11-01 17:37:39
double/int = int
double/float = float
double/double = double
int/double = double

itd..
czyli:
C/C++
double foo = 15;
cout << foo / 2 << endl; // 7
cout << foo / 2.0 << endl; // 7.5 (double)
cout << foo / 2.0f << endl; //7.5 (float)
P-139481
Monika90
» 2015-11-01 17:54:47
Dla double/int i double/float wynikiem też będzie double.
P-139483
carlosmay
» 2015-11-01 20:28:04
C/C++
int a = 56;
double wyn;
wyn = a /( double ) 10;
cout << wyn << endl;
 wynik dzielenia dwóch liczb całkowitych promuje wynik do liczby całkowitej.
W tej sytuacji trzeba jawnie określić literał liczbowy do
( double ) 10
 lub jak w przykładzie wyżej
lub 'a' zadeklarować jako double .
P-139485
RazzorFlame
» 2015-11-01 21:26:17
@Monika90 fakt, masz racje (jak zwykle :)) a tutaj mój mały teścik:
http://ideone.com/T5dMcF
P-139488
lukasz427
Temat założony przez niniejszego użytkownika
» 2015-11-02 02:03:17
Dzieki bardzo.Troche sie nad tym glowilem:)
P-139500
« 1 »
  Strona 1 z 1