Zahl runden mit Borland C++ Builder?



  • Hallo,
    ich programmiere grade mal wieder an einem programm das im grunde nur rechnet. jetzt habe ich eine funktion eingebaut, wo die akkukapazität ausgerechnet werden kann. Dies suiht ungefähr so aus:

    __fastcall Te_akkuenergie::Te_akkuenergie(TComponent* Owner)
            : TForm(Owner)
    //---------------------------------------------------------------------------
    void __fastcall Te_akkuenergie::Button2Click(TObject *Sender)
    {
     Edit8->Text=(FloatToStr((StrToFloat(Edit5->Text) / StrToFloat(Edit7->Text))*1000));
    
     }
    //---------------------------------------------------------------------------
    

    Wie muss ich diesen Code schreiben damit die Zahl auf die 1000 gerundet wird also wenn zB 1424,245321 rauskommt dass dann einfach 1424 in edit8 angezeigt wird? Bion dankbar über jede Antwort bin nämlich noch Noob... 😃



  • Edit8->Text = IntToStr(int(StrToFloat(Edit5->Text))/int(StrToFloat(Edit7->Text)));
    


  • Ingo schrieb:

    ---

    ?? sry wenn das manche als anfängerfrage sehen ich wäre dankbar über die antwort 🙄 🙄



  • Guck mal in der Builder Hilfe nach, es gibt eine Funktion die das übernimmt.
    (mit fällt grad der name nicht ein)

    Es gibt ja verschiedene floatformate...



  • Tut mir leid, war ein Fehler beim ersten Posting.



  • upps, meine antwort war schwachsinn.
    Hab nicht genau gelesen, du willst ja [b]keinen[b] Exponenten angezeigt haben 🙄



  • Ingo schrieb:

    Edit8->Text = IntToStr(int(StrToFloat(Edit5->Text))/int(StrToFloat(Edit7->Text)));
    

    stimmt du hattest nen fehler drin aber ich hab ihn gefunden jetzt gehts (glaub ich mal)

    Edit8->Text = IntToStr(int(StrToFloat(Edit5->Text)[b])[/b]/int(StrToFloat(Edit7->Text)));
    

    dieses ) waru zuviel



  • Hier habt ihr ne kleine funktion zum Runden...

    //---------------------------------------------------------------------------
    // Funktion rundet die angegebene Gleitkommazahl auf die nächste
    // Ganzzahl (integer) auf oder ab.
    //---------------------------------------------------------------------------
    int Round(double Value)
    {
      return ((int) (Value >= 0.0 ? (Value + 0.5) : (Value - 0.5)));
    }
    


  • #include "stdio.h"
    void __fastcall TForm1::Edit1Exit(TObject *Sender)
    {
         unsigned int value;
         sscanf(Edit1->Text.c_str(),"%d",&value);
         Edit2->Text = value;
    }
    

Anmelden zum Antworten