Wie ausgabeformat von zahlen ändern?
-
Braineater schrieb:
danke für die hilfe...kann man das noch irgendwie so hinbiegen,das es bei ganzen zahlen keine kommastellen dranhängt?
mfg
in c geht das so:
printf( "%.0f", dVar );
-
.filmor schrieb:
Wenn diese „Ganzzahlen“ als double kommen prinzipbedingt nicht.
.. sicher geht das. Einfach die Anzahl der Nachkommastellen auf 0 setzen. Etwa so:
cout << fixed << setprecision(0); // Gleitkommadarstellung; NK-Stellen=0 for( double d = 1./7; d < 100; d *= 7.1 ) cout << d << endl;
Obwohl hier mit 'krummen' double's hantiert wird, ist die Ausgabe
0 1 7 51
Gruß
Werner
-
Hallo
Dazu hätte ich auch mal noch eine Frage:
Wenn ich meine Float Zahl auf folgende weise ausgeben möchte:Edit11->Text=a[0];
habe ich auch das Problem das er mir wie viele Nachkommastellen oder in Exponentenschreibweise ausgibt.
Wie kann ich das begrenzen oder verhindern??Gruß
-
wurde doch oben gesagt, mit den entsprechenden manipulatoren. Schau mal auf cplusplus.com/reference unter streams -> manupulators
-
da hab ich jetzt das gefunden:
Stream manipulators
Manipulators are functions specifically designed to be used in conjunction with the insertion (<<) and extraction (>>) operators on stream objects, for example:
aber das benutze ich doch garnicht.
muss ich das denn nicht eher in der float.h oder so einstellen?
-
Doch. Das Problem liegt nicht beim
float
, sondern bei der Ausgabe des Streams. Um diese anzupassen, sind Manipulatoren das Richtige.Übrigens:
<float.h>
ist kein C++-Standardheader. Wenn du ihn überhaupt jemals brauchst, dann nimm<cfloat>
.
-
ok, soweit einleuchtend
http://www.cplusplus.com/reference/iostream/ios_base/setf.html
aber wenn ich dann sowas schreibe
cout.setf(ios::fixed)
bekomm ich ne Fehlermeldung.
wo gehört die zeile denn hin bzw ist das überhaupt richtig?
-
physikus schrieb:
bekomm ich ne Fehlermeldung.
Wie wäre es, wenn du uns die Fehlermeldung mitteilst? Wieso schreibt man die eigentlich nicht automatisch mit hin?
Grüssli
-
sorry
[C++ Fehler] Unit1.cpp(16): E2141 Fehler in der Deklarationssyntax
-
Dann tippe ich mal auf folgendes:
cout.setf(ios::fixed);
-> Semikolon vergessen ...
Grüssli
-
nein, das is es leider nicht.
-
Dann zeig mal den Kontext.
-
//--------------------------------------------------------------------------- #include <vcl.h> #include <math.h> #include <iostream> #pragma hdrstop #include "Unit1.h" #include "Project1.cpp" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1; cout.setf(ios::fixed); #define PI 3.1415926535 #define ALPHA1 PI/2 #define ALPHA2 PI*7/6 . . .
-
Dachte ich mir, dass da was nicht stimmen kann. Anweisungen müssen innerhalb einer Funktion stehen.
-
Hi
das hab ich auch schon versuchtvoid __fastcall TForm1::Button1Click(TObject *Sender) { cout.setf(ios::fixed); . . .
aber dann kommt folgendes
[C++ Fehler] Unit1.cpp(63): E2451 Undefiniertes Symbol 'cout'
[C++ Fehler] Unit1.cpp(63): E2090 Qualifizierer 'ios' ist kein Name einer Klasse oder einer Struktur
[C++ Fehler] Unit1.cpp(63): E2121 ) fehlt beim Funktionsaufruf
-
Schreib mal
std::
vorcout
undios
. Der Header<iostream>
wurde vorher eingebunden?
-
wow super.... std hat das Problem gelöst.
aber, wenn ich jetzt schreibestd::cout<<setprecision(5);
sagt er setprecision sei eine undefinierte Funktion.....
-
Sehr viel scheinst du ja nicht gerade zu überlegen...
Wie alles in der Standardbibliothek ist auch
setprecision()
im Namensraumstd
.
-
Nexus schrieb:
Sehr viel scheinst du ja nicht gerade zu überlegen...
Wie alles in der Standardbibliothek ist auch
setprecision()
im Namensraumstd
.Guten Morgen
Das dachte ich mir das das jetzt kommt, aber das hab ich natürlich auch versucht.std::cout>>std::setprecision(5);
---> [C++ Fehler] Unit1.cpp(72): E2316 'setprecision' ist kein Element von 'std'
-
Ich wette jetzt hast du vergessen den Header
<iomanip>
zu inkludieren ...
Sag mal, hast du schon mal ein sinnvolles Tutorial oder Buch zu C++ gelesen?Grüssli