![]() |
![]() |
|
![]() |
![]() |
|
Designer Forum Treffpunkt für Gedankenaustausch von Simmern, die selbst |
|
Themen-Optionen | Ansicht |
![]() |
#11 |
Jr. Member
![]() Registriert seit: 01.10.2002
Alter: 57
Beiträge: 90
|
![]() Also "%d" funktioniert nur bei Integer Zahlen, nicht bei floats, die als integer dargestellt werden sollen.
Eine Möglichkeit ist, vorher auf einen anderen Variablentyp umwandeln ("casten") wie Du auch schon gmacht hast, (FLOAT64)val wandelt val (vom Typ FLOAT64) in einen FLOAT64-Wert um, also überflüssig hier. Im Gegensatz dazu wandelt (SINT32) oder (int) eine Zahl in eine Integerzahl um und rundet ab, z.B.: sprintf(pelement->string, "%d", (SINT32)val); Alternativ kannst Du auch ein anderes Format verwenden, z.B.: sprintf(pelement->string, "%.0f", val); Hier wird eine Floatzahl ("%f") ohne Nachkommastelle (".0") in pelement->string geprinted, dabei wird gerundet. Die Formatstrings sind übrigens in C und XML sehr ähnlich !d! (XML) entspricht "%d" (C). Die val!=val bringt wie Du schon bemerkt hast, gar nichts. Ich weiß auch nicht wie das sich mal in die "üblichen" String-Callbacks geschlichen hat. Wie geasgt ist value/=bla eine Abkürzung für val=val/bla. Wie suich das mit einer doppelten Zuweisung in einer Zeile verhält habe ich nicht so im Kopf. So etwas vermeide ich immer, es geht ja auch in zwei Schritten. Ich gehe ziemlich stark davon aus, dass von rechts nach links abgearbeitet wird, aber sicher bin ich mir da nicht. Arne Bartels |
![]() |
![]() |
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
|
|