Rechnen mit negativem Ergebnis in Bascom

OP #4695948
Lesenswert?

Hallo liebe Helfer,

ich rechne mit Long-Variablen, da ich sehr grosse Zahlen verwende.
Probleme gibt es sobald ein Wert negativ wird.
Beispiel mit kleinen Werten:
9900 - 10000 sollte -100 ergeben
Angezeigt wird 4294967196
Was mache ich falsch?

Vielen Dank für eure Hilfe.
Ditt
OP #4696006
Lesenswert?

Vielen Dank für die Antwort.

Mein Testprogramm:

Dim Test1 As Long
Dim Test2 As Long
Dim Test3 As Dword


   Test1 = 9900
   Test2 = 10000

   Test3 = Test1 - Test2

   Locate 1 , 1
   Lcd Test3

Das Problem war die Variable Test3 als Dword.
Nach Änderung auch zu Long wurde der richtige
Wert -100 angezeigt. Man sollte wohl bei
arithmetischen Rechnung immer die gleichen Definitionen
verwenden.

Nochmals vielen Dank
Ditt
Gast #4696080
Lesenswert?

Dieter B. schrieb:
> Man sollte wohl bei arithmetischen Rechnung immer die gleichen
> Definitionen verwenden.

Nein, das ist nicht das Problem. Wenn als Ergebnis der Operation 
negative Zahlen auftreten können, muss sowohl die Funktion negative 
Zahlen zurückgeben können, als auch die Ergebnisvariable negative Zahlen 
aufnehmen können.
#4696550
Lesenswert?

Rufus Τ. F. schrieb:
> Carl bezieht sich auf die eher als "einfach strukturiert" zu
> bezeichnende Qualität des Bascom-Compilers.

Ach so meint ihr das, ihr Schlingel.
:)

Trotzdem ist mir das lieber, als mit blödsinnigen Fehlermeldungen 
zugeschüttet zu werden, die mit dem Fehler nicht das Geringste zu tun 
haben.
Man kann m.E.n. von den Leuten verlangen, daß sie sehen, ob ein Ergebnis 
"zu dick" für den gewählten Datentyp wird und überquillt.

MfG Paul
Gast #4696615
Lesenswert?

Paul B. schrieb:
> Trotzdem ist mir das lieber, als mit blödsinnigen Fehlermeldungen
> zugeschüttet zu werden, die mit dem Fehler nicht das Geringste zu tun
> haben.

Du sprichst von C?
Da ist oft nur die erste Fehlermeldung interessant. Der Rest ist meist 
nur das Produkt der Verzweifelungstat des Compilers, dem nachfolgenden, 
jetzt mehr oder weniger sinnlosen Code, doch noch irgendeine Bedeutung 
abzugewinnen, was dann kläglich scheitert und in seitenfüllenden 
Fehlerlisten mündet.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren