Ausgaben mit Nachkommastellen
-
Was bedeutet die Ausgabe printf("%8.2f",rest)
Ich habe in einem Latex Manual gelesen, dass reelle Zahlen,
mit mind. 8 Stellen + 2 Nachkommastellen ausgegeben werden.Ich habe aber im Programm aber keine 8 Stellen, sondern 3 und 2 Nachkommastellen.
Die Ausgabe beginnt bei 875 und zählt bis auf 0 runter.
Kann es sein dass nur der Wert 800 hier die Relevanz zeigt.
Hier fängt es laut einer Berechnung bei 875 an.
-
Prinzipiell bedeutet %8.2f eine Fließkommazahl mit maximal 8 Stellen vor und 2 Stellen nach dem Komma.
Vielleicht postest du mal den betreffenden Code.
gruß
Martin
-
main(){ int x,y; double preis,rest; printf("Restwerttabelle"); printf("Neupreiseingabe: "); scanf(&preis); printf("Zeitraum") printf("\nJahr\t8 Jahre\t6 Jahre\t4 Jahre"); for(x=1,x<=8;x+1){ /*äüßere Schleife*/ printf("\n%i\t",x); for(y=8;y>=4;y=y-2){ rest=preis-x*preis/y; if(rest<0) break; pritnf("%8.2f",rest); } } }
-
quovadis3 schrieb:
main(){ int x,y; double preis,rest; printf("Restwerttabelle"); printf("Neupreiseingabe: "); scanf(&preis); printf("Zeitraum") printf("\nJahr\t8 Jahre\t6 Jahre\t4 Jahre"); for(x=1,x<=8;x+1){ /*äüßere Schleife*/ printf("\n%i\t",x); for(y=8;y>=4;y=y-2){ rest=preis-x*preis/y; if(rest<0) break; pritnf("%8.2f",rest); } } }#include <iostream> int main() { int x,y; double preis,rest; std::cout << "Restwerttabelle " << std::endl << "Neupreiseingabe: " << std::endl; std::cin >> preis; std::cout << "Zeitraum" << std::endl << "\nJahr\t8 Jahre\t6 Jahre\t4 Jahre" << std::endl; for(x = 1; x <= 8; ++x) // :arrow_right: x+1 bewirkt nur, dass jedes Mal 2 verwendet wird => das Programm hängt sich hier auf, da x nicht verändert wird std::cout << x << "\t " << std::endl; for(y = 8;y >= 4;y -= 2){ rest = preis - x*preis/y; if(rest>=0) std::cout << rest << std::endl; }Einigen SChreibfehler waren auch drin (pritnf ...).
Das war ein C Code und kein C++ Code
-
printf() Formatkennung sind sowieso ein Kapitel für sich (und die ganze Funktion gilt bei C++'lern oft als veraltet), aber ich versuch's mal:
% - Beginn der Formatkennung
8 - minimale Größe des Ausgabefeldes (wird notfalls links mit Leerzeichen aufgefüllt)
.2 - Anzahl der Nachkommastellen
f - Ausgabe eines double-Wertes in "nichtwissenschaflicher" Darstellung-> deine Zahlen werden mit einer Breite von (mindestens) 8 Zeichen dargestellt, davon ein Komma und zwei Nachkommastellen (und solange die Zahlen in diese 8 Stellen reinpassen, werden sie schön untereinander ausgerichtet).
-
Danke für die nette Erläuterung. Hab nur provosorisch den Code dahin geklatscht, daher ohne \n's, \t's. Hab den Mist aus dem Erlenkötter.
Aber dachte auch, dass der zwar 8 Stellen bereitstellt sozusagen aber halt nicht belegt. War halt ne Willkürliche Belegegung. Hätte auch "%4.2lf" schreiben können.
Danke auch für die Erklärung dass sich das Programm aufhängt.