Bug mit StrF()

Hier werden, insbesondere in den Beta-Phasen, Bugmeldungen gepostet. Das offizielle BugForum ist allerdings hier.
real
Beiträge: 468
Registriert: 05.10.2004 14:43

Bug mit StrF()

Beitrag von real »

Das ist schon in Version 3.94 buggy und ich möchte hier die Gelegenheit nutzen:

Code: Alles auswählen

MessageRequester ("StrF-Test", StrF(0.98,1))
Die Hilfe sagt zu StrF():
"Die Zahl wird nicht gerundet, sondern abgeschnitten."

Ich sage: stimmt nicht! :shock: Ärgerlich, wenn man sich darauf verlässt!
Benutzeravatar
Lebostein
Beiträge: 674
Registriert: 13.09.2004 11:31
Wohnort: Erzgebirge

Beitrag von Lebostein »

Auf der einen Seite will man mit den vielen Str()-Funktionen (StrQ(), StrF(), StrD() usw.) die Geschwindigkeit der Str()-Funktionen nicht gefährden (hab ich mir erst kürzlich im engl. Forum erklären lassen), auf der anderen Seite baut man eine Runden-Routine in die Funktion ein, die sicher nicht gerade geschwindigkeitsfördernd ist.... verstehe das wer will...
Benutzeravatar
Deeem2031
Beiträge: 1232
Registriert: 29.08.2004 00:16
Wohnort: Vorm Computer
Kontaktdaten:

Beitrag von Deeem2031 »

Das Runden da rauszubekommen wäre bestimmt nich einfach, schließlich ist das nur ein Aufruf von sprintf_("%f",...) ;)
Bild
[url=irc://irc.freenode.org/##purebasic.de]irc://irc.freenode.org/##purebasic.de[/url]
DarkDragon
Beiträge: 6291
Registriert: 29.08.2004 08:37
Computerausstattung: Hoffentlich bald keine mehr
Kontaktdaten:

Beitrag von DarkDragon »

Deeem2031 hat geschrieben:Das Runden da rauszubekommen wäre bestimmt nich einfach, schließlich ist das nur ein Aufruf von sprintf_("%f",...) ;)
Außerdem guckt euch das hier mal an:

Code: Alles auswählen

a.f = 0.05

Debug StrF(a.f, 20)
Interressant, nicht ;) ?
Das ganze hat mit der Ungenauigkeit von Floats im IEEE 754 zu tun.
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
Benutzeravatar
freedimension
Admin
Beiträge: 1987
Registriert: 08.09.2004 13:19
Wohnort: Ludwigsburg
Kontaktdaten:

Beitrag von freedimension »

DarkDragon hat geschrieben:Interressant, nicht ;) ?
Wenn du den armen Leuten die gerade ohne Compiler auskommen müssen sagen würdest was dabei rauskommt, könnte man dir diese Frage vielleicht sogar beantworten ;)
Beginne jeden Tag als ob es Absicht wäre!
Bild
BILDblog
Jake
Beiträge: 121
Registriert: 28.05.2005 04:10
Wohnort: Berlin

Beitrag von Jake »

Das bei StrF() korrekt gerundet wird ist seit Version 3.70 so.
Steht in der "Geschichte" in der Hilfe.
Hab das schon mal erwähnt und Andre wird es bei der nächsten Ausgabe der Hilfe ändern.
MfG Jake
Antworten