double i jego użycie
Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?
Zarejestruj się!

double i jego użycie

AutorWiadomość
Temat założony przez niniejszego użytkownika
double i jego użycie
» 2019-10-06 11:19:34
Witam dopiero zaczynam przygodę z C++ (używam książki i sam się uczę) i mam problem ze zrozumieniem funkcji double szukałem odpowiedzi, ale nadal nie rozumiem czemu wywala błąd.
Mam zrobić programik przeliczający liczby dziesiętne i podający wynik w dziesiętnych.

Program:
C/C++
#include <iostream>
double przeliczone();

int main()
{
    using namespace std;
   
    cout << "Podaj lata swietlne: ";
    double lata;
    double jed_astr;
    cin >> lata;
    cout << lata << " lata swietlne to ";
    jed_astr = przeliczone( lata ); // --- tu wywala błąd w kompilatorze ---
    cout << jed_astr << " jednostek astronomicznych." << endl;
    return 0;
}

double przeliczone( n )
{
   
    n = n * 63240;
}


P.S. Sorki, że wkleiłem tak na "żywca" ale nie znalazłem pomocy do forum jak zamieszczać kody na nim (jeszcze poszukam)...

Edycja:

Poprawiłem kod ale wylicza błędnie
C/C++
#include <iostream>
double przeliczone( double );

int main()
{
    using namespace std;
   
    cout << "Podaj lata swietlne: ";
    double lata;
    double jed_astr;
    cin >> lata;
    cout << lata << " lata swietlne to ";
    jed_astr = przeliczone( lata );
    cout << jed_astr << " jednostek astronomicznych." << endl;
    return 0;
}

double przeliczone( double n )
{
    return n * 63240;
}
P-175294
» 2019-10-06 11:47:10
Dlaczego uważasz, że wylicza błędnie?
P-175295
Temat założony przez niniejszego użytkownika
» 2019-10-06 12:02:30
ćwiczenie 6
ćwiczenie 6
 
P-175296
» 2019-10-06 12:09:46
użyj np.
C/C++
#include <iomanip>      // std::setprecision
cout << fixed << setprecision( 6 ) << jed_astr << endl;

@EDIT
zapoznaj się z materiałem
Obsługa strumienia cout
P-175297
Temat założony przez niniejszego użytkownika
» 2019-10-06 12:23:46
Z tego co rozumiem funkcji double ma ograniczenia po przecinku i dlatego źle liczyło?
możesz przybliżyć gdzie mogę poczytać co miało na ten błąd wpływ?

teraz działa:
C/C++
#include <iostream>
#include <iomanip>      // std::setprecision


int przeliczone( double );

int main()
{
    using namespace std;
    cout << fixed << setprecision( 3 ) << endl;
    cout << "Podaj lata swietlne: ";
    double lata;
    double jed_astr;
    cin >> lata;
    cout << lata << " lata swietlne to ";
    jed_astr = przeliczone( lata );
    cout << jed_astr << " jednostek astronomicznych." << endl;
    return 0;
}

int przeliczone( double n )
{
    return n * 63240;
}
 
Ćwiczenie 6b
Ćwiczenie 6b
 
P-175298
» 2019-10-06 14:23:22
Z tego co rozumiem funkcji double ma ograniczenia po przecinku i dlatego źle liczyło?
Wynik nigdy nie był błędny. 1.2648e+006 znaczy 1.2648*106.
P-175300
« 1 »
 Strona 1 z 1