Längen berechnung



  • Hallo,

    mit dem folgendem code soll anhand ausgewählter werte in einer CheckListBox eine kleine berechnung durchgeführt werden.

    for(int i=0; i<CheckListBox1->Count; ++i)                               //Auslesen der Checklistbox
            {
                     if(CheckListBox1->Checked[i])
                     {
                            strItems +=  CheckListBox1->Items->Strings[i] + " ; ";
    
                            if((i % 2) == 0)
                            {
                                    laenge += StrToFloat((Edit4->Text)/10);         //Länge der Segmente berechnen
                            }
                            else
                            {
                                    laenge += StrToFloat((Edit5->Text)/17);         //Breite der Segmente berechnen
                            }
                     }
           }
    

    in edit 4 steht als bsp 10 und edit 5 mal 17...
    das ergebnis soll in der variable laenge zu finden sein.

    wenn ich nun die ersten 5 felder in der checklistBox anklicke müsste ich doch normalerweiße 5 erhalten oder?
    ich bekomm also nur 3...
    woran liegt das?

    danke mal für die hilfe...bei fragen einfach melden...



  • Meinst du nicht eher

    StrToFloat(Edit4->Text)/10;
    

    ???
    Ansonsten debuggen...



  • perfekt danke...

    nur noch eine Frage:
    wie kann ich meine Zahl die ich ausgebe auf 2 Kommazahlen begrenzen?
    😕



  • Schau mal in die Hilfe zu FloatToStrF



  • hallo..
    ich habe es mal folgendermaßen versucht:

    int laenge2 = laenge * 100;
           float laengecm = laenge2/100.0;                                          //Länge auf 2 Kommastellen kürzen
    
           String laengecm2 = FloatToStr(laengecm) + " cm";
    

    jedoch bekomm ich imernoch die komplette zahl ausgegeben...also bsp 12345,67891011
    und nicht wie gewünscht 12345,67

    wo liegt mein fehler in der berechnung?
    danke schonmal



  • Ich sagte ja auch FloatToStrF und nicht FloatToStr. Die Funktion mit dem F erlaubt Formatierung.
    z. Bsp.

    String str = FloatToStrF(12345,67891011, ffFixed, 10, 2);
    

    Das gibt die Zahl mit 2 Stellen nach dem Komma aus.



  • okay danke...
    hat funktioniert 🙂


Anmelden zum Antworten