Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Darstellung von Ganzzahlen als long double mit Nachkommastellen

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
11.07.2006, 13:47 Uhr
Yadgar



High!

Aupperle, Übung 4-1 (Die Kunst der Programmierung mit C++, S. 76):


C++:
int i1 = 2 + 3;
int i2 = i1 * 2;
int i3 = (i1 + i2) * (i1 - i2);

double d1 = 2.0 + 3.0;
double d2 = i1 * 2.0;
double d3 = (i1 + i2) * (i1 - i2);

cout << "Der Wert von i3 ist " << i3 << endl; // -75
cout << "Der Wert von d3 ist " << d3 << endl; // -75



Die Aufgabenstellung ist: Programmtext so abändern, dass möglichst viele Nachkommastellen angezeigt werden... aber ich kriege es beim besten Willen nicht hin! Egal, ob ich sämtlich Variablen als long double mit expliziten long double-Literalkonstanten initialisieren, mit cout.precision 50 Nachkommastellen vorgeben oder sogar noch zum Ergebnis 0.0000000000 hinzuaddiere - am Ende kommt immer nur wie gehabt -75 raus! Was mache ich falsch? Oder will die Aufgabenstellung ganz bewusst in die Irre führen und es ist gar nicht möglich, die Werte mit Nachkommastellen auszugeben?

Hier der letzte Stand meiner Bemühungen:


C++:
// Ausgabegenauigkeit und Rundungsfehler bei Fließkomma-Arithmetik
// (AUPPERLE, Die Kunst der Programmierung in C++, Braunschweig/Wiesbaden 2002, S. 75f, Übung 4-1)

#include <iostream>
using namespace std;

int main()
{
   long double i1 = 2.0l+3.0l;
   long double i2 = i1*2.0l;
   long double i3 = (i1+i2) * (i1-i2);
  
   long double d1 = 2.0l * 3.0l;
   long double d2 = i1 * 2.0l;
   long double d3 = (i1+i2) * (i1-i2);
  
   cout.precision(50);
   cout << "Der Wert von i3 ist " << i3+0.000000000l << endl;
   cout.precision(50);
   cout << "Der Wert von d3 ist " << d3+0.000000000l << endl;
  
   getchar();
}



Bis bald im Khyberspace!

Yadgar
--
Flagmaker - ein Programmier-Blog
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: