Mein Problem ist das der float einen falschen Wert hat.
Der float ist dann z.B. 0.1000000001 anstatt einfach 0.1000000000.
Was kann man da machen?
Hier mein Code.
Code
		
					
				#include <iostream>
using namespace std;
int main()
{
    int wahl = 0;
    float preis = 0.0, einwurf1 = 0.0;
    cout << "Getraenkeautomat" << endl;
    cout << "Waehlen sie ihr Getraenk aus:" << endl;
    cout << "1. Wasser (0,50 Euro)" << endl;
    cout << "2. Limonade (1,00 Euro)" << endl;
    cout << "3. Bier (2,00 Euro)" << endl << endl;
    cout << "Bitte waehlen sie ein Getraenk aus: ";
    cin >> wahl;
    if (wahl == 1 || wahl == 2 || wahl == 3)
    {
        switch(wahl)
        {
            case 1:
                preis = 0.50;
                cout << "Sie haben 1. Wasser gewaehlt. Bitte zahlen sie (0,50 Euro)" << endl;
                cout << "Einwurf: ";
                cin >> einwurf1;
                if (einwurf1 == preis)
                {
                    cout << "Danke. Bitte entnehmen sie ihr Getraenk!";
                    break;
                }
                else if (einwurf1 < preis)
                {
                    float rest = preis - einwurf1;
                    float rueckgabe = 0.0;
                    do
                    {
                        float einwurf2 = 0.0;
                        cout << "Es fehlen: " << rest << endl;
                        cout << "Einwurf: ";
                        cin >> einwurf2;
                        rueckgabe = einwurf1 + einwurf2;
                        rest -= einwurf2;
                        einwurf1 = 0.0;
                    }while (rest > 0.00);
                    if (rueckgabe == preis)
                    {
                        cout << "Danke. Bitte entnehmen sie ihr Getraenk!";
                    }else if (rueckgabe > preis)
                    {
                        cout << "Danke. Bitte entnehmen sie ihr Getraenk!" << endl;
                        cout << "Ihr Wechselgeld betraegt: " << rueckgabe - preis;
                    }
                    //cout << "Es fehlen: " << preis - einwurf1 << endl;
                    //cout << "Schade versuchen sie es wenn sie genug Geld haben";
                    break;
                }
                else if (einwurf1 > preis)
                {
                    cout << "Danke. Bitte entnehmen sie ihr Getraenk!" << endl;
                    cout << "Ihr Wechselgeld betraegt: " << einwurf1 - preis << " Euro" << endl;
                    break;
                }
            case 2:
                preis = 1.00;
                cout << "Sie haben 2. Limonade gewaehlt. Bitte zahlen sie (1,00 Euro)" << endl;
                cout << "Einwurf: ";
                cin >> einwurf1;
                if (einwurf1 == preis)
                {
                    cout << "Danke. Bitte entnehmen sie ihr Getraenk!";
                    break;
                }
                else if (einwurf1 < preis)
                {
                    cout << "Es fehlen: " << preis - einwurf1 << endl;
                    cout << "Schade versuchen sie es wenn sie genug Geld haben";
                    break;
                }
                else if (einwurf1 > preis)
                {
                    cout << "Danke. Bitte entnehmen sie ihr Getraenk!" << endl;
                    cout << "Ihr Wechselgeld betraegt: " << einwurf1 - preis << " Euro" << endl;
                    break;
                }
            case 3:
                preis = 2.00;
                cout << "Sie haben 3. Bier gewaehlt. Bitte zahlen sie (2,00 Euro)" << endl;
                cout << "Einwurf: ";
                cin >> einwurf1;
                if (einwurf1 == preis)
                {
                    cout << "Danke. Bitte entnehmen sie ihr Getraenk!";
                    break;
                }
                else if (einwurf1 < preis)
                {
                    cout << "Es fehlen: " << preis - einwurf1 << endl;
                    cout << "Schade versuchen sie es wenn sie genug Geld haben";
                    break;
                }
                else if (einwurf1 > preis)
                {
                    cout << "Danke. Bitte entnehmen sie ihr Getraenk!" << endl;
                    cout << "Ihr Wechselgeld betraegt: " << einwurf1 - preis << " Euro" << endl;
                    break;
                }
        }
    } else { cout << "Falsche Eingabe!";}
    getchar();
    getchar();
return 0;
} 
		