Frage zur Ausgabe eines Double-Wertes
-
Hallo.
Ich schreib grad nen Algorithmus, bei dem ich als Abbruchbedingug eine Fehlerschranke hab. In einem Pseudocode hab ich dann folgendes gesehen:
#include <iostream> using namespace std; int main(){ double err = 1.; cout << "Wert von err: " << err << endl; return 0; }double err wurde mit "1." initialisiert. Die Zahlen nach dem Punkt fehlen...deshalb dachte ich, damit meinen die 1.0 in Kurznotation, aber als ich es mit cout ausgegeben hab, erschien:
[... ~/Desktop]$ ./a.out Wert von err: 1 [... ~/Desktop]$, also ohne 0. Ich hab diese Schreibweise noch nie gesehen bzw. benutzt. Von daher verstehe ich nicht, was das soll. Kann mir das jmd. erklären??? Als ich daraus eine 1.0 gemacht hab, wurde mir übrigens auch nur eine 1 angezeigt. Warum konvertiert das cout es in einen int???
-
Dein Computer sieht Zahlen wie ein Mathematiker, nicht wie ein Ingenieur. Von daher ist 1.0 das gleiche wie 1
Dagegen hilft das:
http://www.cplusplus.com/reference/iostream/manipulators/setprecision/edit: Es ist natürlich Quatsch, dass der Computer Zahlen wie ein Mathematiker behandelt. Genauer wäre, ostream behandelt Zahlen in der Standardeinstellung wie ein Mathematiker.
-
cout << "Wert von err: " << std::fixed << err << endl;
-
Hallo und vielen Dank für eure Hilfe. Zum Glück werden die Zahlen intern wie von Ingenieuren behandelt, da diese eine Double-Zahl als Fehlerschranke arbeitet und auch korrekt sein sollte/betrachtet werden sollte

thx