Richtige Format ausgabe mit immer nur 2 Stellen nach dem Komma
-
Hallo liebe Community,
das ist mein erster Beitrag, ich hoffe ich mache nichts falsch^^.
Ich habe erst neu angefangen C++ zu lernen und habe ein wahrscheinlich leichtes
Problem, nur komme ich nicht selber auf die Lösung.Hoffe jemand kann mir helfen.
Mein Code sieht so aus:
#include <iostream>
#include <iomanip>using namespace std;
int main()
{
float j[10];
float sum;
int i=0;for(i;i<10;i++)
{cout << "Enter the price of product " << i << " in EUR : " << " ";
cin >> j[i] ;sum = j[0]+j[1]+j[2]+j[3]+j[4]+j[5]+j[6]+j[7]+j[8]+j[9];
}
cout << "\n";
cout << " I N V O I C E" << endl;
cout << " -------------" << endl;
cout << " -------------" << endl;for(i=0;i<10;i++)
{
cout << setiosflags(ios::right) << setw(10)<< j[i] << " EUR" << endl;
}
cout << " -------------" << endl;
cout << setiosflags(ios::right) << setw(10) << sum << " EUR" << endl;
return 0;
}Die Ausgabe nach den eingegebenen Zahlen soll z.b so aussehen:
I N V O I C E
-----------------__23.22 EUR
__12.12 EUR
1212.23 EUR
___2.23 EUR
_232.23 EUR
__33.55 EUR
_344.33 EUR
3423.45 EUR
___3.32 EUR
___1.11 EUR
----------------
5287.70 EURDIE " __ " wegdenken , wusste nicht wie man das hier zentriert Posten kann

Es funktioniert soweit alles , dass die Zahlen rechtsbündig sind, das "EUR" immer untereinander und das Ergebnis richtig ist.
Es fehlt nur noch das wenn ich 3.3333 eingebe es nur 2 Stellen nach dem Komma sein soll, genauso wenn ich 1.1 eingebe es 1.10 stehen soll. Also immer im richtigen Format...

Entschuldigen sie bitte die Rechtschreibfehler

VIELEN DANK

-
Geld speichert man nicht in floats. Nimm lieber int und speicher die Beträge in Cents. Dann schreib dir eine Funktion, die dir einen String des Formats [Euro].[Cents] EUR zurückgibt.