double kürzen bzw. ohne kommastellen
-
hallo, ich hab da mal ne kleine frage. wie kann ich nen double so kürzen, dass er keine zeichen nach dem komma anzeigt?
ich hab da das schachbrett-könig teil programmiert, also auf jedem feld die doppelte menge reiskörner
nur leider gibt der mir folgendes aus:
Auf Feld 1.000000 liegen 1.000000 Körner. Nun will ich aber, dass der nur "Auf Feld 1 liegen 1 Körner" ausgibt. Nen integer oder so kann ich ja leider nicht nehmen, da die zahl recht gross wird
hier mal der code.
void main(void) { double start_anzahl = 1; double max_felder = 64; double i; for(i = 1; i <= max_felder; i++){ printf("Auf Feld %lf liegen %lf Koerner!\n",i, start_anzahl); start_anzahl*= 2; } system("pause"); }danke schonmal im voraus.
gruss
-
Also für die Felderzahl (i) reicht ein int auf jeden Fall aus. Und für die Ausgabe der double-Werte probier's mal mit der Angabe "%.0lf" (Präzision (Nachkommastellen) = 0).
(PS: C ist eine Etage höher)
-
hehe es is aber ned C

hab nur printf genommen um das teil zu testen
is ne .cpp dateinaja, wenn ich nen int nehm bei einer zahl, dann gibt er mir nur 0 aus und das ist auch nicht so richtig

das mit dem kürzen versuch ich eben mal.greetz
-
Wenn du einen int-Wert mit "%lf" ausgeben willst, dürfte sowieso nur Müll entstehen - deswegen verwendet man in C++ auch IO-Streams für so etwas (die wissen zur Compilezeit, was für ein Typ ankommt und wie sie ihn verarbeiten müssen):
int main(void) // btw, "void main()" ist Unsinn { double start_anzahl = 1; int max_felder = 64; cout<<setprecision(0)<<noshowpoint;//Ausgabe anpassen for(int i = 1; i <= max_felder; i++){ cout<<"Auf Feld "<<i<<" liegen "<<start_anzahl<<" Körner.\n"; start_anzahl*= 2; } //system("pause"); cin.get(); }
-
hm okee, ich merks mir. danke vielmals

gruss