Float funktioniert nicht mehr richtig/ Geteilt ergibt 0 ????

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

xXThunderXx

Betreff: Float funktioniert nicht mehr richtig/ Geteilt ergibt 0 ????

BeitragMi, Mai 27, 2009 11:55
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,

Ich habe folgens prob. Ich programmiere gerade an meinem Online RPG und jetzt wollte ich eine Lebensanzeige machen jedoch funktionirt # nicht mehr. Wenn ich 10 / 3 mache kommt 3.0 raus statt 3.333
woran kann das liegen.


Code: [AUSKLAPPEN]

leben_anzeige1# = 10 / 3
 
Print leben_anzeige1#

leben_anzeige1# = leben_anzeige1# * 3

Print leben_anzeige1#

hir kommt 3.0 bei mir raus statt 3.33

Code: [AUSKLAPPEN]

gamer(0)\leben_max = 300
gamer(0)\leben = 250

leben_anzeige1# = (gamer(0)\leben / gamer(0)\leben_max) * 100
 
Text 128,128,""+leben_anzeige1#
Color 255,0,0
Rect 32,32,leben_anzeige1#,20



hir kommt 0.0 raus warum ????

Kann mir jemand helfen!!!!!!!
  • Zuletzt bearbeitet von xXThunderXx am Mi, Mai 27, 2009 12:00, insgesamt einmal bearbeitet
 

DjDETE

BeitragMi, Mai 27, 2009 12:00
Antworten mit Zitat
Benutzer-Profile anzeigen
Zu Code 1:
Code: [AUSKLAPPEN]
leben_anzeige1# = 10 / 3.

Zu Code 2:
Code: [AUSKLAPPEN]
leben_anzeige1# = (gamer(0)\leben / float(gamer(0)\leben_max)) * 100

Du musst auch mit Floats rechnen um Floats rauszubekommen.
MfG DeTe
Aktuelles Projekt: XXX |XXX | 3% der v1b fertig
www.emu-soft.de.vu Für die Homepage suche ich noch Linktauschpartner, bei Interesse einfach melden.
 

Krischan

BeitragMi, Mai 27, 2009 12:11
Antworten mit Zitat
Benutzer-Profile anzeigen
Am besten immer so schreiben (gibt mehrere Varianten), wenn es sich um Floatwerte handelt:

10.0/3

10/3.0

10/3*1.0
 

Omenaton_2

BeitragMi, Mai 27, 2009 15:47
Antworten mit Zitat
Benutzer-Profile anzeigen
Ja, dieses Float /Integer Problem taucht immer wieder mal auf, aber mit Erfahrung erkennt man schon schnell wo das Problem liegt.

Wieso das so ist weiß ich nicht, aber ich habe gelernt damit umzugehen.
Wie schon geschrieben steht, muß man manchmal die dezimal Zahlen mit Float() erzwingen. Manchmal muß ich sogar als Trick bei Umrechnungen temporäre Variablen einführen. Das ist dann der Fall, wenn eine Berechnung in dezimal Zahlen erfolgen muß aber die Ausgangs- und Endwerte sind oder sollen ganze Zahlen sein.

Mit Float() und Int() kriegt man das hin. Beachte auch Floor und Ceil, die sind manchmal genau das Richtige. (Die sidn zwar für Rundungen, aber es hat was damit zu tun.)

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group