Seite 1 von 1

Zahl auf positiv/negativ prüfen

Verfasst: 21.03.2007 10:44
von JKG
Hallo Zusammen !

Ich habe hier eine kleine Schnittstelle für einen FiBu-Import geschrieben. In Abhängigkeit, ob ein übergebener Wert positiv oder negativ ist, wird ein Soll/Haben Kennzeichen gesetzt. Funktioniert soweit - aber ...

Beträge, zwischen -0.01 und -0.99 werden nicht als negativ erkannt !?

Code: Alles auswählen

e_betrag$ = "-0.78"
If Val(e_betrag$) < 0
   MessageRequester("", "Betrag < als 0 "+e_betrag$)
Else
   MessageRequester("", "Betrag > als 0"+e_betrag$)
EndIf
Kann mir da jemand weiter helfen !

Danke und Grüße

Jörg

Verfasst: 21.03.2007 10:48
von Kai

Code: Alles auswählen

e_betrag$ = "-0.78"
If ValF(e_betrag$) < 0
   MessageRequester("", "Betrag < als 0 "+e_betrag$)
Else
   MessageRequester("", "Betrag > als 0 "+e_betrag$)
EndIf 

Verfasst: 21.03.2007 10:58
von JKG
Hallo Kai !

Herzlichen Dank ! Es funktioniert.
Peinlich, dass ich nicht selbst darauf gekommen bin !!! :oops:


Gruß Jörg

Verfasst: 21.03.2007 14:27
von Kaeru Gaman
kleiner tip:

sämtliche berechnungen, auch Soll/Haben-checks,
solltest du direkt mit numerischen Variablen durchführen.
Strings wirklich einzig und allein zur Ein- und Ausgabe verwenden.

auch an dieser stelle weise ich mal wieder auf die vorteile hin,
die die verwendung von Fixkomma-Zahlen für Währungs-rechnungen bietet.
in aller kürze:
rechne in 10tel oder 100stel Cent, füge das Komma nur für die darstellung ein.

Verfasst: 21.03.2007 22:44
von JKG
Hallo Kaeru,

kannst du das man etwas genauer beschreiben, bitte ???

Also ich bekomme als Ausgangsbasis eine Textdatei. Hier stehen alle Daten, die zu einem Satz gehören in einer Zeile. Die einzelnen "Felder" sind mit einem Simikolon getrennt.

Dann ist ja erstmal ein String. Wie würdest du vorgehen ???


Grüße

Jörg

Verfasst: 21.03.2007 23:04
von Kaeru Gaman
deine datensätze haben ja eine gewisse struktur.
dafür legst du eine Struct an, für einen Datensatz.
dann erstellst du eine strukturierte liste, ein listenelement für jeden datensatz.

als numerische felder, nicht als stringfelder.
auch für die aufbewahrung im speicher ist das platzsparender.

um die string-datensätze nach dem einlesen zu zerlegen, kannst du StringField() benutzen,
oder dir eine eigene, speziell abgestimmte procedure basteln.

aber im grunde liest du immer nur einen datensatz als string ein,
zerlegst ihn, packst die zahlen in ein strukturiertes element
und kannst dann den string mit dem nächsten datensatz überschreiben.