Formatieren einer Ausgabe



  • Hallo,

    ich habe ein DBEdit Feld. Über eine Schaltfläsche berechne ich den Wert und gebe diesen in dem DBEdit Feld aus. Der Wert den ich berechne ist ein float Wert.
    diesen möchte ich gerne so formatieren, dass ich nur 2 Stellen hinter dem Komma bekomme. Wie kann ich dies machen???
    Ich arbeite mit dem Borlad Developer Studio 2005.
    Wenn ich setprecision angebe bekomme ich Fehlermeldungen.

    Gruß

    Dieter

    PS.: Bei dem Developer Studio arbeite ich mit C++



  • Moin Moin,

    ich würde sowas nehmen :

    char szValue[256];
    
    //fValue ist Dein Float-Wert
    sprintf(szValue, "%.2f", fValue);
    

    Dieser Code schneidet nach 2 Stellen ab und schreibt das Ergebnis in szValue, aber : es wird nicht gerundet !

    Gruß SciFi



  • Du hast ein berechnetes Feld der Query hinzugefügt? Dann kanns Du im Objektinspektor, unter DisplayFormat #.00 eintragen. Dies formatiert die Ausgabe immer auf 2 Stellen nach dem Komma. Details gibt es in der Hilfe.



  • hier noch eine Variante für das OnAfterOpen-Ereignis des Query:

    void __fastcall TForm::Query1AfterOpen(TDataSet *DataSet)
    {
    TNumericField *Field1 = dynamic_cast<TNumericField*>(DataSet->FieldByName("Umfang"));
    Field1->DisplayFormat = "###,###,##0.00";
    }
    


  • Leider funktionieren beide Versionen nicht.
    Ich bekomme immer Fehlermeldungen.
    Desweiteren habe ich nicht im Objectinspecktor die Möglichkeit "DisplayFormat" zu bearbeiten.

    Es muss doch eine Möglichkeit geben dies mit der Funktion Precision aus zu geben. Allerdings weiß ich nicht wie ich diese Funktion deklarieren muss, da diese im Header #include "Math.h" nicht enthalten ist.

    Gruß
    Dieter



  • Dieter38 schrieb:

    Ich bekomme immer Fehlermeldungen.

    Interessant wäre der Wortlaut der Fehlermeldungen. Ich vermute, dass es sich bei dem berechneten Feld nicht um ein TFloatField handelt - was allerdings Deiner ersten Aussage widerspricht...



  • Es hat funktioniert.

    Ich hatte einen Fehler im Quelltext.

    Gruß

    Dieter


Log in to reply