Seite 1 von 1

Variablen werden automatisch gerundet *gelöst*

Verfasst: 26.02.2009 20:43
von Sunny
Ich hab das Problem, dass wenn ich einem Gadget eine Variable mit Kommastelle ausgeben möchte, die Variable automatisch gerundet wird.

Hier mal ein Beispiel:

Code: Alles auswählen

If OpenWindow(0, 100, 200, 160, 130, "PureBasic Window", #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget) And CreateGadgetList(WindowID(0))

wert1.f=6583.9

TextGadget(10,30,10,120,20,"Ausgabe mit Variable")
StringGadget(0,30,30,100,20,Str(wert1.f))

TextGadget(11,30,80,120,20,"Ausgabe ohne Variable")
StringGadget(2,30,100,100,20,"6583.9")

  Repeat
    EventID = WaitWindowEvent()

    If EventID = #PB_Event_CloseWindow  
      Quit = 1
    EndIf

  Until Quit = 1

EndIf

End 
Ich würde gern wissen, wo das Problem liegt...

Verfasst: 26.02.2009 20:45
von Artus
Probiers mal mit StrF()

MfG

Verfasst: 26.02.2009 20:49
von Pandorra
besser (genauer) wäre es mit Doubles.
Also:

Code: Alles auswählen

Wert.d
und anstatt

Code: Alles auswählen

StrF(wert)

Code: Alles auswählen

StrD(wert)
StrD(wert,1) ; nur eine Stelle nach dem komma

Verfasst: 26.02.2009 20:53
von Sunny
Ja...
Genau das war mein Problem...

Danke für die schnellen Antworten. :)

Verfasst: 26.02.2009 21:50
von AND51
wenn ich mich richtig erinnere, runden StrF und StrD, deswegen nimmst du einfach 2 statt 1 Nachkommastelle. So findest du halt auf 2 Stellen; dann überlegst dir, wie du das Rundungsproblem zusammen mit Len und Left umgehen kannst.

:wink:

Verfasst: 26.02.2009 21:53
von Kaeru Gaman
das Problem war aber keine Rundung auf der letzten anzuzeigenden Stelle,
sondern die Integerisierung bei Nutzung der falschen STR Funktion...