Re: Bug ?! Kategorie: Programmierung (von Hansi - 10.12.2004 9:43) | ||
Als Antwort auf Re: Bug ?! von Jörg - 10.12.2004 8:27 | ||
| ||
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 ?! (von Jörg - 10.12.2004 10:13) 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) |