PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Bascom will nicht runden (FIX, INT)



Jaecko
27.12.2006, 13:55
Hi.

Ich möchte in einem Programmteil etwas berechnen; dazu brauche ich den Anteil vor dem Komma, den man ja durch FIX() bekommen sollte
(Also wenn x = 5.68, dann fix(x) = 5)

Nur funktioniert das nicht ganz:



Dim X As Long
Dim Y As Long
Tyear as Long
Tyear = 2006
X = Tyear - 1900
X = X / 4
Y = FIX(X)


Genau an der letzten Zeile mit dem FIX meldet Bascom ERR 63, "Integer Or Long Expected for ABS()". Hab aber schon versucht, alle Variablen als Long oder Integer zu verwenden. Was hab ich hier übersehen?

MfG

Rofo88
27.12.2006, 14:27
Long und Integer sollten doch Ganzzahlen sein. Wenn Du was mit komma haben willst mußte schon Single oder Double nehmen.



Tyear as Long
Damit wird Bascom auch nichts anfangen können!


MfG RoFo88

slavezero
30.12.2006, 17:59
- 1tens schreib mal: Dim Tyear as Long
- 2tens FIX funzt nur mit Single

brauchst du eigentlich long?
Division mit Word oder Byte gibt immer nur den ganzzahligen Anteil zurück.

Rofo88
30.12.2006, 18:49
- 2tens FIX funzt nur mit Single


Nö, das geht auch mit Double


MfG RoFo88

Jaecko
02.01.2007, 20:16
So, war die letzten Tage unterwegs.

Also das vergessene DIM war ein Opfer der Verplantheit beim abschreiben (im eigentlichen Programm isses schon drin).

Das mit dem Long:
Problem war einfach, da (noch) nicht bekannt ist, ob die Werte in Byte bzw. Word noch reinpassen.

Aber das mit Single/Double hat geklappt. Wusste zwar, dass es da ausser Long etc. noch Typen gibt, die eben Nachkommastellen enthalten, nur wollte mir deren Name nicht einfallen.
Thx soweit.