jmaus hat geschrieben:kann das sein das du schon etwas sehr sperrig bist in letzter Zeit? Und Einsicht ist auch nicht gerade deine Stärke, oder? Aber lassen wir das..
Unterlass bitte gleich solche Sätze. Sowas zu schreiben und mit "Aber lassen wir das.. " zu beenden ist doch deiner immer noch nicht würdig.
jmaus hat geschrieben:Hmm. alles irgendwie genauso falsch, oder? Es ist es so wie Familienvater gesagt hat, die ReGaHss hat keine Möglichkeit einen overflow oder underflow
Natürlich wäre 0 oder -1 genau so falsch wie eben 2147483647. Will mich denn keiner verstehen?
Wenn es keine Möglichkeit gibt, ein Overflow in .ToInteger() abzufangen, dann ist dies schlecht, das war mir aber auch nicht bewußt.
Ein Scripterror wäre *IMHO* das Mindeste.
ergibt -2147483549
Und du ahnst es schon, auch das ist in meinen Augen ein Fehler.
jmaus hat geschrieben:Und hier bist du eben dem benannten Wertebereich auf den Leim gegangen
Achiwo, denn ich wurde schon vorher durch einen mitlesenden Freund gewarnt. Wahrscheinlich weil er ahnte, das es so enden würde.
jmaus hat geschrieben:nun dann wäre der "Bug" in dem internen Skript wohl eher das hier eben die Annahme des Entwicklers wohl gewesen ist das der entsprechende Float wert nie so groß wird das die Integerwandlung Gefahr läuft überzulaufen.
Genau so wird es sein. Also ist der Thread hier gelöst, der User in dem Thread ist ein Einzelschicksal und meine Bugmeldung falsch. Da ich das Gerät nicht besitze wird das eh schwer für mich.
jmaus hat geschrieben:Du hast dich jedoch im Umkehrschluss leider sehr ungünstig ausgedrückt denn dein Anfangsbeitrag zielt eben leider nicht darauf ab das entsprechende Konstrukt in dem internen Skript zu verdammen, sondern so wie Familienvater und ich ihn gelesen habe zielte er mehr darauf ab eben einen Fehler in ToInteger() selbst aufzudecken, den es aber eben aus genannten Gründen so nicht gibt.
Ungünstig ausgedrückt? Jo, das ist so sicherlich der Fall, das will ich gerne einsehen.
Schon im 2. Post hier im Thread sollte es aber eigentlich geklärt sein.
Ja es ist *IMHO* ein Fehler wenn .ToInteger() einfach irgendeine Zahl ausgibt statt einem Fehler.
Wenn das in Euren Augen kein Fehler ist, dann ist das auch gut. Hab ich alles schon oben geschrieben.
jmaus hat geschrieben:Gerne kannst du aber selbst hier ein besseres Konstrukt vorschlagen um die besagte Aufgabe (Wandlung eines Real in ein Integer mit Rundung und abschneiden der Nachkommastellen) anders hinzubekommen als der ursprüngliche Entwickler es getan hat.
Aber nicht doch.
Klar werde ich mir die Scripte bei Gelegenheit genauer anschauen.
Aber ich habe dem meldenden User vertraut, das seine Angaben einfach mal stimmen und seine Zählerstände dadurch verkehrt berechnet werden ohne das er irgendetwas selbst verschuldet hätte.
deimos hat geschrieben:
eine Idee für eine Lösung des Overflows in ToInteger() und ähnlichen Dingen wäre eine globale Bool Property, welche auf true gesetzt wird, falls es zum Überlauf kam (Also ähnliche Idee wie mit einem Carry Register in einer ALU).
vielen Dank.
Alchy