String To Float (Problem Sonderzeichen)



  • Hi Leute,
    ich hab ein Problem. Ich hab ne Datenbank, wo ich Spalte mit dem Typ "Währung" habe. Diesen möchte ich in einen DBGrid mit einem €-Zeichen ausgeben. Bisher zeigt er mir statt 10,00 € nur die Zahl 10 an und wenn ich 10,50 € hab kommt nur ne Fehlermeldung.



  • Hallo,

    du kannst den String nach dem Vorkommen von "€" durchsuchen (Pos("€")) und es dann wegschneiden.

    AnsiString -> SubString() // Delete() ...

    LG, Micha



  • wenn du nur die Anzeige formatieren willst geht das z.B. so:

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

    statt TNumericField kannst du ja TCurrencyField verwenden

    alternativ kannst du auch hier mal schaun



  • zu dieser substring methode. hab das noch nie gemacht.
    also ich habe mal ein beispiel erstellt.
    Edit1->Text = "10,00 €";
    int Pos = Edit1->Text.Pos("€");
    aber nun hängts bei mir. wie kann ich nun das €-Zeichen löschen? Delete verlangt ja zwei int werte.



  • Hallo,

    der erste int-Wert ist der Index (Start) und der zweite int-Wert ist die Länge der zu löschenden Zeichenkette (in deinem Fall 1)

    Edit1->Text = Edit1->Text.Delete(Edit1->Text.Pos("€"),1);
    

    LG, Micha

    //Edit: Oder so wie Linnea und akari schreiben



  • Hallo

    Las das mit dem Wegschneiden. Hör lieber auf Linnea, bleib bei deinem Währungs-Feld und formatier nur die Ausgabe korrekt.

    bis bald
    akari


Anmelden zum Antworten