Problem bei EIngabe von Nachkommastellen



  • Hallo,

    ich bin dabei einen einfachen Taschenrechner zu programmieren.
    Da ich nun auch mit Nachkommastellen rechnen will, habe ich int mit long double ersetzt, jedoch funktioniert das nicht ganz. Vllt. habe ich hier eine wichtige Regel übersehen im Umgang mit Variablen, finde aber nicht heraus welche.
    Hier ein Codeschnipsel

    long double addi (long double a, long double b) //Funktion zur Addition
    {
     long double p;
     p=a+b;
     return (p);
    }
    
    case 1:
                   cin>>a>>b;                               //Eingabe der Zahlen
                   z = addi (a,b);                          //Einsetzen der Funktion
                   cout << "Das Ergebnis: " << z<<endl;
                   system("Pause");
                   break;
    

    Mit int hatte alles funktioniert und jetzt funktioniert auch noch alles bis auf Zahlen mit Nachkommastellen. Also case-anweisung etc. sollten stimmen und der Fehler muss im Codebeispiel sein.



  • Wie gibst du denn die Zahle ein? Möglicherweise klappt es ja, wenn du einen Punkt als Dezimaltrenner verwendest.



  • Hallo,

    thx für die schnelle Antwort. Das mit . funktioniert, hatte gedacht das ich das bereits getestet hatte war aber nur bei int..
    Die Zahlen will ich eingeben können, dass ein normaler User den Taschenrechner auch bedienen könnte.
    Dankeschön:)



  • Wenn du sehr viel Wert auf das Komma als Dezimaltrenner legst, könntest du dich mal nach Locales umsehen - diese bestimmen auch, wie Zahlen ein- und ausgegeben werden können. Und ein deutsches Locale sollte auch mit Kommas arbeiten.
    (bei den Amis ticken die Uhren etwas anders, deshalb verwenden sie auch den Punkt als Dezimaltrenner und das Komma als Tausender-Gruppierung :D)


Log in to reply