Seite 1 von 1

Rechnen mit Dezimalzahlen

Verfasst: 04.08.2018 08:37
von rolstra
Hallo,
nach längerer "Abstinenz" habe ich wieder mit PureBasic programmiert, was mir großen Spass gemacht hat! Leider bin ich als (immer noch) Anfänger an dem folgenden Problem gescheitert:

Ich habe ein einfaches Programm geschrieben - zwei Eingabefelder (werden aus einem StringGadget ausgelesen) und zwei Ausgabefelder (Ergebnis wird in einen StringGadget geschrieben):

Code: Alles auswählen

Procedure Button_Berechnen(EventType)
  EingabeFeld1$ = GetGadgetText(#String_Eingabefeld1)
  Debug EingabeFeld1$
  EingabeFeld1 = ValD(EingabeFeld1$)
  Debug EingabeFeld1 ;es werden keine Dezimalzahlen angezeigt!
  EingabeFeld2$ = GetGadgetText(#String_Eingabefeld2)
  Debug EingabeFeld2$
  EingabeFeld2 = ValD(EingabeFeld2$)
  Debug EingabeFeld2 ;es werden keine Dezimalzahlen angezeigt!
  Ausgabewert1 = EingabeFeld1*EingabeFeld2
  Ausgabewert2 = EingabeFeld1/EingabeFeld2
  SetGadgetText(#String_Ausgabefeld1, StrD(Ausgabewert1,8))
  SetGadgetText(#String_Ausgabefeld2, StrD(Ausgabewert2,8))
Gebe ich nun z.B. im ersten Eingabefeld die Zahl "4" ein und im zweiten Eingabefeld die Zahl "3", dann wird im Ausgabefeld richtig die Zahl "12" angezeicht (viermal drei), im zweiten Feld jedoch nur die Zahl "1". Das korrekte Ergebnis müsste jedoch sein: 1,33333333

Wie kann ich den Code dahingehend abändern, dass mir Dezimalzahlen angezeigt warden?

Vielen Dank für eure Hilfe!

Re: Rechnen mit Dezimalzahlen

Verfasst: 04.08.2018 08:57
von STARGÅTE
Du musst deine Variablen als Doubles (oder Floats) definieren:

Code: Alles auswählen

Protected EingabeFeld1.d, EingabeFeld2.d, Ausgabewert1.d, Ausgabewert2.d

Re: Rechnen mit Dezimalzahlen

Verfasst: 04.08.2018 09:14
von rolstra
Vielen Dank, das habe ich übersehen …

Wenn ich nun in das erste Feld z.B. "5" eingebe und in das zweite "0,25" dann wird im Ausgabefeld 2 die Meldung "+Infinity" ausgegeben. D.h. es kann nicht durch eine Zahl kleiner Null dividiert werden, wenn die Werte als Double definiert sind?

Vielen Dank

Re: Rechnen mit Dezimalzahlen

Verfasst: 04.08.2018 09:17
von rolstra
…. sorry habe vergessen die Werte bei einer neuen Eingabe wieder auf Null zu setzen. Funktioniert so natürlich!!!

Vielen Dank und Grüße

Re: Rechnen mit Dezimalzahlen

Verfasst: 04.08.2018 12:23
von STARGÅTE
Beachte bitte, dass "0,25" das falsche Format hat. Dezimalzahlen werden in PureBasic immer mit Punkt geschrieben: "0.25"