Autor Beitrag
alzaimar
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2889
Erhaltene Danke: 13

W2000, XP
D6E, BDS2006A, DevExpress
BeitragVerfasst: So 30.07.06 17:24 
Hi delfiphan,

die Anpassung der Achsenschranken sollte natürlich optional sein, denn manchmal ist es sinnvoll (z.B. Messwerte sinnvoll darstellen um Clipping zu vermeiden), und manchmal eben nicht.

_________________
Na denn, dann. Bis dann, denn.
zongo-joe
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 134

win xp prof
D3, D4, D7
BeitragVerfasst: Di 01.08.06 13:32 
Ihr schwebt da ja schon in höheren Sphären...
vielleicht eine kleine Anregung aus dem Brute-Force-Bereich ?

Ich würde nach "000" und "999" suchen, zB pos("000", floattostr(zahl)) und davon die Anzahl der Nachkommastellen abhängig machen, der Rest ergibt sich dann von selbst; ist zwar nicht sehr elegant, aber flott und einfach.
alzaimar
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2889
Erhaltene Danke: 13

W2000, XP
D6E, BDS2006A, DevExpress
BeitragVerfasst: Di 01.08.06 13:49 
user profile iconzongo-joe hat folgendes geschrieben:
... ist zwar nicht sehr elegant, aber flott und einfach.

und ungenau und unsauber.

Man kann doch nicht einfach Zahlen so runden, das sie hübsch aussehen. In der Wissenschaft und der Mathematik ist die gewünschte Genauigkeit sehr wohl bekannt. Mein Beispiel zeigt nur, wie man Achsenbeschriftungen automatisch erstellen kann. Eine Formatierung der Nachkommastellen erfolgt nicht, denn man hat bei Floating-Point Zahlen eigentlich immer das Problem, das irgendwo "krumme" Zahlen auftreten (0.1000000001321, statt 0.1). Da der gute Programmierer aber immer weiß, in welcher Welt (zahlentechnisch) er sich gerade befindet, kann er dann auch sehr elegant über eine kleine Rundung diesen Quark abschnippeln. Nebenbei kommen diese Rundungsfehler infolge der binären Darstellung ohnehin nur im Bereich von (grob geschätzt) 10^-6 - 10^-12 (Single, bzw. Extended) vor. Da der ernsthafte Programmierer keine Singles verwendet, reicht eine präventive Anzeige von 8 Dezimalstellen aus, obwohl man sich da, z.B. bei Meterangaben durchaus zum Ött macht.

Beim Runden gilt IMMER: Mit Augenmaß und Sachverstand.

_________________
Na denn, dann. Bis dann, denn.
delfiphan
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2684
Erhaltene Danke: 32



BeitragVerfasst: Mi 02.08.06 14:29 
user profile iconzongo-joe hat folgendes geschrieben:
vielleicht eine kleine Anregung aus dem Brute-Force-Bereich ?
Wieso brute-force wenn es durch eine kleine Rechnung geht?

user profile iconzongo-joe hat folgendes geschrieben:
Ich würde nach "000" und "999" suchen, zB pos("000", floattostr(zahl)) und davon die Anzahl der Nachkommastellen abhängig machen, der Rest ergibt sich dann von selbst; ist zwar nicht sehr elegant, aber flott und einfach.
Stell dir vor die Skala ginge von 0.999 bis 1. In dem Fall möchte ich nämlich z.B. 0.999, 0.9991, 0.9992, ..., 0.9999, 1 als Beschriftung sehen. Da funktioniert der Ansatz mit pos schon mal nicht.