Variablen werden automatisch gerundet *gelöst*

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Sunny
Beiträge: 290
Registriert: 19.02.2009 06:02

Variablen werden automatisch gerundet *gelöst*

Beitrag 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...
Zuletzt geändert von Sunny am 02.03.2009 13:00, insgesamt 1-mal geändert.
Benutzeravatar
Artus
Beiträge: 280
Registriert: 15.01.2005 20:53

Beitrag von Artus »

Probiers mal mit StrF()

MfG
Pandorra
Beiträge: 124
Registriert: 10.02.2007 12:15

Beitrag 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
Benutze PB v 4.40 Beta 3
Benutzeravatar
Sunny
Beiträge: 290
Registriert: 19.02.2009 06:02

Beitrag von Sunny »

Ja...
Genau das war mein Problem...

Danke für die schnellen Antworten. :)
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Beitrag 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:
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

das Problem war aber keine Rundung auf der letzten anzuzeigenden Stelle,
sondern die Integerisierung bei Nutzung der falschen STR Funktion...
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Antworten