double i jego użycie
Ostatnio zmodyfikowano 2019-10-06 14:23
Raivik 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: #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 ); 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 #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; }
|
|
pekfos |
» 2019-10-06 11:47:10 Dlaczego uważasz, że wylicza błędnie? |
|
Raivik Temat założony przez niniejszego użytkownika |
» 2019-10-06 12:02:30 |
|
nanoant20 |
» 2019-10-06 12:09:46 użyj np. #include <iomanip> cout << fixed << setprecision( 6 ) << jed_astr << endl;
@EDIT zapoznaj się z materiałem Obsługa strumienia cout |
|
Raivik 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: #include <iostream> #include <iomanip>
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; }
|
|
pekfos |
» 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*10 6. |
|
« 1 » |