Komischer Fehler???



  • Hi,
    Hier erstmal den Code.
    //Anfang des Codes
    double ar[]={1,2,3,4,5,6,7,8,9,10};
    double y = Edit1->Text.ToDouble();

    int wert = (y*10) /2 ;
    Edit2->Text = ar[wert-1];
    //Ende
    Erklärung: Also wenn man eine Zahl zwischen 0,2 und 2 in denn Editfeld einfügt sollte folgendes herauskommen:
    0,2 = 1
    0,4 = 2
    0,6 = 3
    usw.
    also die anzahl von schritten mit 0,2 aus einem Array ausgelesen.

    aber bei 0,6 kommt 2 heraus und ich kann einfach nicht verstehen warum ;((
    ich hoffe jemand kann mir helfen

    PSC



  • das müsste klappen

    int ar[]={1,2,3,4,5,6,7,8,9,10};
    float y = StrToFloat(Edit1->Text);
    int wert = (y*10) /2 ;
    Edit2->Text = ar[wert-1];
    


  • Mach den:

    int wert = int((y*10) / 2 + 0.5) ;

    Du rundest nicht by Type- Cast!!!

    Computer rechnen komisch! :p
    0,6 * 10 / 2 != 3 !!! (Ist bei Computern halt so)


Anmelden zum Antworten