Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - FAQ - Zum CC1-Forum - Zum CC-Pro-Forum

Re: Bug ?! Kategorie: Programmierung (von Jörg - 10.12.2004 10:13)
Als Antwort auf Re: Bug ?! von Hansi - 10.12.2004 9:43

Das kann's nicht sein. 9 * 100.000, 4 * 1.000.000 ... klappt ja!
Wird wohl schon irgendwo ein Bug sein. Naja, läuft ja jetzt.

Thanx für deine Zeit Hansi


>
> Hallo Jörg,
>
> ja ist schon komisch, aber Du hast geschrieben bei Werten bis 3 funktioniert es, dann nicht mehr.
> Eine Integer-Variable kann 3*10.000 noch aufnehmen, bei 4*10.000 brauchst Du halt den Typ Long.
>
> Bye Hansi   ...einfach ausprobieren
>
> > Hi Hansi.
> >
> > Hat natürlich was der Ansatz mit Byte und Long Variablen.
> > Ist bestimmt sicherer erst mit: tempvar = (getchar(faktor, 8) - 48);
> >
> > (ev. besser noch:
> > tempbyte = (getchar(faktor, 8) - 48);
> > tempvar = tempbyte; und weiterrechnen)
> >
> > die Typ-Konvertierung durchzuführen und dann zu rechnen.
> >
> > Unlogisch ist dabei eigentlich nur der Effekt, dass es 7x klappt und 1x nur bei Byte-Wert 48 - 51.
> >
> > Jörg
> >
> >
> >
> > >
> > > Hallo Jörg,
> > >
> > > die Funktion getchart() liefert Dir Integer / Byte zurück und Deine Berechnungen nutzen
> > > den Typ long.
> > >
> > > Ã?bergebe vor Deinen Berechnungen den Wert von getchar() an eine long-Variable und
> > > rechne damit weiter oder la� von getchar() ein Typ long zurück geben, dann sollte es
> > > klappen.
> > >
> > > GruÃ? Hansi
> > >  
> > >
> > > > Effekte, welche 5h Fehlersuche zur Folge haben:
> > > >
> > > > --------------------------------------------------------------------------
> > > >
> > > > function getchar(byte s[], int position) returns byte
> > > > {
> > > >  return s[position];
> > > > }
> > > >
> > > > function para3(long kafaktor) returns long
> > > > {
> > > >  string faktor;
> > > >  long tempvar;
> > > >
> > > >  faktor = "K-Fa:00000000";
> > > >
> > > > // ... Benutzereingabe des K-Faktors
> > > >
> > > >  kafaktor = 10000000 * (getchar(faktor, 5) - 48);
> > > >  tempvar = 1000000 * (getchar(faktor, 6) - 48);
> > > >  kafaktor = kafaktor + tempvar;
> > > >  tempvar = 100000 * (getchar(faktor, 7) - 48);
> > > >  kafaktor = kafaktor + tempvar;
> > > >  
> > > >  tempvar = (getchar(faktor, 8) - 48);
> > > >  tempvar = tempvar * 10000;
> > > > // funktioniert immer
> > > >
> > > > // tempvar = 10000 * (getchar(faktor, 8) - 48);
> > > > // funktioniert nicht, wenn (getchar(faktor, 8) - 48) einen Wert > 3 liefert
> > > > // --- ??? ---
> > > >
> > > >  kafaktor = kafaktor + tempvar;
> > > >  tempvar = 1000 * (getchar(faktor,9) - 48);
> > > >  kafaktor = kafaktor + tempvar;
> > > >  tempvar = 100 * (getchar(faktor,10) - 48);
> > > >  kafaktor = kafaktor + tempvar;
> > > >  tempvar = 10 * (getchar(faktor,11) - 48);
> > > >  kafaktor = kafaktor + tempvar;
> > > >  tempvar = (getchar(faktor,12) - 48);
> > > >  kafaktor = kafaktor + tempvar;
> > > >
> > > >  return kafaktor;
> > > > }
> > > >
> > > > -------------------------------------------------------------
> > > >
> > > > Jemand 'ne logische Erklärung dafür?
> > > >
> > > > Ein fast wahnsinnig gewordener
> > > > Jörg


    Antwort schreiben


Antworten:

Re: Bug ?! - kein Bug ! (von André H. - 19.12.2004 14:21)
Re: Bug ?! (von Hansi - 10.12.2004 12:32)
    Re: Bug ?! (von Jörg - 13.12.2004 10:05)
        Re: Bug ?! (von Thomas - 14.12.2004 14:36)
Re: Bug ?! (von krassos - 10.12.2004 11:22)