Long double i double

KrejziPL
Użytkownik
Użytkownik
Posty: 7
Rejestracja: 25 kwie 2010, o 22:45
Płeć: Mężczyzna
Lokalizacja: Whitestock

Long double i double

Post autor: KrejziPL »

Witam, mam kłopot z poprawnym zapisaniem funkcji long double i double. Podczas gdy dla float jest poprawnie to dla long double i double ilosc liczb znaczących jest tak sama dla float. Poniżej zapis tych funkcji (C++)

Kod: Zaznacz cały

#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
    float e; 
    double  f;
    long double g;

cout << "Liczba typu float: " << e << " zajmuje " << sizeof(e) << " b " << endl;
printf("Podaj liczbe typu double: 
");
scanf("%lf",&f);
cout << "Liczba typu double: " << f << " zajmuje " << sizeof(f) << " b " << endl;
printf("Podaj liczbe typu long double: 
");
scanf("%Lf",&g);
cout << "Liczba typu long double: " << g << " zajmuje " << sizeof(g) << " b " << endl;

return 0;
}
Ostatnio zmieniony 6 gru 2010, o 16:38 przez Anonymous, łącznie zmieniany 1 raz.
Powód: Kod w [code][\code]!
PMichalak
Użytkownik
Użytkownik
Posty: 125
Rejestracja: 29 paź 2009, o 20:03
Płeć: Mężczyzna
Lokalizacja: Kalisz
Podziękował: 1 raz
Pomógł: 16 razy

Long double i double

Post autor: PMichalak »

float, double etc. to nie funkcje! to typy proste.
Nieprawdą jest, że mają one tyle samo cyfr znaczących, float ma najmniej, później double, a później long double.
Raz używasz strumieni (cin, cout), a raz scaf/printf, bądź bardziej konsekwentny.
Wiesz, że nie ma znaczenia jaką liczbę przechowujesz i zawsze zajmuje tyle samo pamięci? Z programu wynika, że chyba nie wiesz..
To ile cyfr znaczących się wyświetli możesz ustawić cout.precision, albo odpowiednich parametrów w printf.

Kod: Zaznacz cały

#include <iostream>
using namespace std;

int main()
{  
   float e;
   double f;
   long double g;

   cout.precision(7); // ilośc cyfr po przecinku
   cout << "Liczba typu float: " << e << " zajmuje " << sizeof(e) << " b " << endl;
   cout << "Podaj liczbe typu double: 
";
   cin >> f;
   cout << "Liczba typu double: " << f << " zajmuje " << sizeof(f) << " b " << endl;
   cout << "Podaj liczbe typu long double: 
";
   cin >> g;
   cout << "Liczba typu long double: " << g << " zajmuje " << sizeof(g) << " b " << endl;
   

   return 0;
}
ODPOWIEDZ