| |
|
|
Frank Abbing | Ich wünsche mir (in erster Linie per Floats) den neuen relationalen Operator: Ungefähr bzw. Fast gleich. Also quasi ein Gleichheitszeichen mit einer frei einstellbaren Toleranz, z.B.:
~=
oder
><
Und dazu eine Funktion, um den Toleranzwert (in positiver und gleichzeitig auch negativer Richtung) zu setzen, wie z.B.:
Set(About, 0.0001)
Das ganze wäre auch sinnvoll per Integer-Zahlen. In dem Fall setzt man eben ganzzahlige Werte:
Set(About,3)
Hierzu bitte auch lesen: [web]https://www.rgh-soft.de/forum01/read.php?f=7&i=12824&t=12824[/web] und [web]https://de.wikipedia.org/wiki/Gleichheitszeichen[/web] |
|
|
| |
|
|
|
Hubert Binnewies | Finde ich auch sehr sinnvoll.....
Ich habe so ein Konstrukt auch schon mal verwendet. Damals zu Zeiten des ATARI ST gab es in seinem Betriebssystem (damals TOS genannt) eine Systemvariable die eine solche dreiwertige Logik enthielt.
Sie enthielt eine 0 bei : Diskette nicht gewechselt, eine 1 bei Diskette gewechselt und eine 2 bei Diskette möglicherweise gewechselt.
Als ich damals mit einem Freund das Tools ST schrieb, das circa Data Becker vertrieben wurde, war ich in einigen Fällen circa diese Dreiwertige Logik ganz glücklich.
Saluto Hubert |
|
|
| WinXP Prof, XProfan 9.1 Newbie
Ein kluger Kopf sagte mal: "Nach dem derzeitigen Stand der Technik ist es unmöglich Programme zu schreiben, die fehlerfrei laufen!" | 10.11.2007 ▲ |
|
|
|
|
Frank Abbing | |
|
| |
|
|
|
| Ich emfinde diesen Operator als Quatsch. |
|
|
| |
|
|
|
| Ist ungefähr so wie das berühmte Jaein von Dostojewski |
|
|
| |
|
|
|
Jörg Sellmeyer | Sowas vielleicht? KompilierenMarkierenSeparieren
Proc RoundAbout
Parameters F!,n%,G&
Declare r%
r% = Round(F!,n%) = G&
Print Str$(F!) + = + Str$(G&) + : + Str$(r%)
Return r%
EndProc
RoundAbout(0.99993,1,5)
RoundAbout(1.09993,1,2)
RoundAbout(2.99993,3,3)
RoundAbout(0.99093,1,1)
Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 13.11.2007 ▲ | |
|
|
|
|
Frank Abbing | @Jörg, keine Funktion zum Runden, sondern eine Bedingung! @ iF, gerade von dir hätte ich erwartet, eine sinnvolle Vereinfachung zu erkennen.
Natürlich lässt sich das auch so abfragen (Beispiel): KompilierenMarkierenSeparieren |
|
|
| |
|
|
|
| Nun als Vereinfachung erkenne ich es sehrwohl, nur das Sinnvoll reicht mir hier per eine Implementierung nicht ganz aus - einfach weil ich selbst noch keinen Fall hatte bei dem ich es hätte brauchen können. Kann aber gut sein das ich hier nur etwas übersehe - kann mich halt nur nicht erinnern derartiges mal irgendwo necessario zu haben. |
|
|
| |
|
|
|
Frank Abbing | Dann hantierst du nicht oft mit Floats. Versuch doch nur mal, zwei Floats auf Gleichheit zu prüfen. Das allein kann schon böse in die Hose gehen, wenn du mit den Zahlen vorher gerechnet hast. Auch per den Fall wäre der neue Operator geeignet. |
|
|
| |
|
|
|
RGH | |
|
|
|
| @Frank: Ich handtiere oft mit Floats, auch bei der Kalkulation von Zahlenreihen und Tabellen wie z.B. Preisberechnungsblättern und/oder Abrechnungsformularen. Ich nutze wenn überhaupt Round. |
|
|
| |
|
|
|
Frank Abbing |
Es hat schon seinen Sinn, dass die Round-Funktion auf eine beliebige Anzahl Nachkommastellen runden kann!
Mag sein. Aber bitte erstelle auch mal ein simples Beispiel, um zwei beliebige Floats auf Gleichheit zu prüfen. Zwei Floats, die nicht gerundet werden dürfen. |
|
|
| |
|
|