Zeiten berechnen getrennt mit . statt ,



  • Hallo,

    ich habe in meinem Programm eine "Dauer" Berechnung, die anhand der Zeit in einem Edit Feld und der aktuellen Zeit die Dauer in einem 2. Edit Feld ausgibt. Mein Quelltext dafür lautet:

    TDateTime dttime = StrToDateTime(Edit1->Text);
    double diff = Now() -dttime;
    double stunden = diff*24;
    
    Dauer=FloatToStrF(stunden, ffFixed, 7, 2);
    

    Nun habe ich das Problem das die errechnete Dauer in dem 2. Edit Feld mit einem Komma getrennt wird, also z.B 3,4.
    Ich möchte aber das die Zeit (Dauer) mit einem . Punkt getrennt wird zB 3.4
    Wo ist mein Fehler???



  • FloatToStr und Co. verwenden die Ländereinstellungen von Windows. Du könntest also im Betriebssystem den DecimalSeparator auf '.' stellen. Oder du veränderst die globale Variable DecimalSeparator in deinem Programm.



  • Und wie oder wo ändere ich den DecimalSeparator?



  • TDateTime dttime = StrToDateTime(Edit1->Text);
    double diff = Now() -dttime;
    double stunden = diff*24;
    
    char OriginalDecimalSeparator = DecimalSeparator;
    DecimalSeparator = '.';
    Dauer=FloatToStrF(stunden, ffFixed, 7, 2);
    DecimalSeparator = OriginalDecimalSeparator;
    

Log in to reply