Ergebnis auf 3-Stellen runden



  • Hallo Zusammen

    Ich stehe an folgendem Problem an.

    Mein Problem ist, dass ich das Ergebnis nicht runden kann.
    Mein Code:

    double ave1Sp1;
                         double result = 0.000;
                         rest = int::Parse(this->txtRest1->Text);
                         hubble = int::Parse(this->txthubble1->Text);
    
                         result =  dis - rest;
                         ave1Sp1 = result / hubble;
                         this->txtAVEsp1->Text = ave1Sp1.ToString();
                         this->txtBestA1->Text = ave1Sp1.ToString();
    

    Je nachdem welche Werte eingesetzt werden, bekomme ich als Resultat eine Kommazahl mit 6-9 Stellen od. mehr.

    Wie muss ich meinen Code verändern oder dazubringen, dass es mir automatisch auf 3 KommaStellen rundet?

    Besten Dank für Eure Hilfe schon im Voraus 🙂



  • doubleMitDreistellen = System::Math::Round(doubleMitZuvielStellen, 3);
    

    Die letzte Ziffer gibt die Nachkommastellen an...



  • 🙂

    Danke



  • Hi,
    Ich bin neu hier und versuch mir selbst, da unsere Schule nächstes Jahr leider kein Informatik mehr anbietet, die Programmiersprache C++ beizubringen.

    Najo dieses Thema hier beschreibt eigentlich genau mein erstes Problem. Ich versuche ein kleines Programm zu schreiben das mit Geld rechnet. Dazu muss ich aber mit zwei Zahlen hinterm Komma arbeiten und weiß nicht wie ich das machen kann.

    doubleMitDreistellen = System::Math::Round(doubleMitZuvielStellen, 3);
    

    Das scheint genau das zu sein was ich suche, aber wenn ich es damit kompiliere sagt er:"Error:'System' has not been declared"

    Ich nehme an, ich muss noch etwas weiteres includen, aber was?



  • Hi BAB!

    Ich vermute, dein Namespace SYSTEM ist nicht bekannt...
    Warum kann ich dir nicht sagen, aber du kannst mal in deine Form1.h reinshauen, da sollte etwa folgendes stehen:

    namespace deinProjektname{
             using namespace System;
    	using namespace System::ComponentModel;
    	using namespace System::Collections;
    	using namespace System::Windows::Forms;
    	using namespace System::Data;
    .....
    }
    

    Falls das nicht bei dir steht, schreib das einfach mal hin, mal sehn was passiert! 😉
    ansonsten probier mal die "mscorlib.dll" zu inkludieren, in der ist der namespace SYSTEM drin und damit auch die Mathe-Funktionen



  • @Bab: Machst du denn C++/CLI oder natives C++? Falls letzteres wirst du den Namespace nicht includieren können. Die mscorlib.dll gehört dem .Net Framework an.



  • Hiho,
    hm was ist Form1.h? 😃 Ok.. scheint so als ob ich hier im falschen unterforum geraten bin... jetzt wo du es sagst, ich mache wohl natives C++. Anfangs mit "GNU" und inzwischen benutz ich Visual Studio 2005. Ne ganz normale Win32 Konsolenanwendung.

    Ich weiß gar nicht was .NET genau ist, bin halt nochn Noob in dem Bereich^^

    Ich hab das mit dem Namespace und dem mscorlib.dll versucht (mscorlib.dll hab ich im internet gesucht und runtergeladen^^), aber hat beides (natürlich) nicht geklappt.

    Najo, sry, ich wusste nicht dass ich hier falsch bin, dann such ich hier im Forum halt weiter nach ner Lösung und pass auch auf, dass es für mich auch das richtige ist 😃

    Edit: Für die, die das selbe Prob. haben wie ich und auch auf den Thread hier stoßen: Hab jetzt endlich ne Lösung gefunden! Bsp:

    double krumm = 12.345;
    krumm=krumm*100;
    double gerade;
    gerade = floor(krumm);
    gerade=gerade/100;
    

    floor() rundet ab und ceil() auf. Leider hab ich noch keine Anweisung, die eine krumme zahl automatisch auf oder abrundet, aber dies ist schonma ein anfang 🙂

    BAB



  • Hi, sieh mal hier:

    http://www.c-plusplus.net/forum/viewtopic-var-t-is-39342.html

    Das sollte dir helfen... 😉



  • Jau genau das habsch gesucht 🙂 Dankeschön

    BAB


Anmelden zum Antworten