Discussion:
REXX: Gegenstueck zu TRUNC()?
(zu alt für eine Antwort)
Lüko Willms
2009-04-29 13:01:44 UTC
Permalink
Die Funktion TRUNC() liefert mir den ganzzahligen Teil einer Zahl
(oder auf Wunsch eine bestimmt Anzahl von Nachkommastellen).

Aber ich finde keine Funktion, die den Rest liefert, also den
gebrochenenzahligen Teil. In manchen Sprachen gibt es sowas, z.B.
unter dem Namen FRAC(). Ist sowas vielleich mal in REXX eingeführt
worden, oder bleibt mir nichts anderes übrig als
nachkommastellen = realnumber - TRUNC(realnumber) zu schreiben?


MfG,
L.W.

-------------------------------------------------------
Was Ahmadinejad wirklich sagte:
<http://www.presstv.ir/detail.aspx?id=92046>
Frank Beythien
2009-04-29 14:43:08 UTC
Permalink
On Wed, 29 Apr 2009 13:01:44 UTC "Lüko Willms"
Post by Lüko Willms
Die Funktion TRUNC() liefert mir den ganzzahligen Teil einer Zahl
(oder auf Wunsch eine bestimmt Anzahl von Nachkommastellen).
Aber ich finde keine Funktion, die den Rest liefert, also den
gebrochenenzahligen Teil. In manchen Sprachen gibt es sowas, z.B.
unter dem Namen FRAC(). Ist sowas vielleich mal in REXX eingeführt
worden, oder bleibt mir nichts anderes übrig als
nachkommastellen = realnumber - TRUNC(realnumber) zu schreiben?
Gefällt dir

nachkommastellen = realnumber //1

besser?

CU/2
--
Frank Beythien fBeythien AT gmx.de
Lüko Willms
2009-04-29 15:33:27 UTC
Permalink
Am Wed, 29 Apr 2009 14:43:08 UTC, schrieb "Frank Beythien"
Post by Frank Beythien
Post by Lüko Willms
nachkommastellen = realnumber - TRUNC(realnumber) zu schreiben?
nachkommastellen = realnumber //1
besser?
Sieht hübsch aus, aber auch wie von hinten durch die Brust ins Auge.
Es erschließt sich nicht gleich.

Und die Frage ist, was ist effizienter. Ich hab gelernt, daß
Divisionen in der Computerei sehr ineffizient sind, aber was sich
hinter meiner Lösung alles an internen Operationen verbirgt, ist mir
auch nicht klar.


MfG,
L.W.

-- -----------------------------------------------------
Was Ahmadinejad wirklich sagte:
<http://www.presstv.ir/detail.aspx?id=92046>
Lars Erdmann
2009-05-05 06:07:09 UTC
Permalink
Post by Lüko Willms
Am Wed, 29 Apr 2009 14:43:08 UTC, schrieb "Frank Beythien"
Post by Frank Beythien
Post by Lüko Willms
nachkommastellen = realnumber - TRUNC(realnumber) zu schreiben?
nachkommastellen = realnumber //1
besser?
Sieht hübsch aus, aber auch wie von hinten durch die Brust ins Auge.
Es erschließt sich nicht gleich.
Und die Frage ist, was ist effizienter. Ich hab gelernt, daß
Divisionen in der Computerei sehr ineffizient sind, aber was sich
hinter meiner Lösung alles an internen Operationen verbirgt, ist mir
auch nicht klar.
Ich denke, y = x//1 wird mehr oder weniger direkt in den Coprozessor
Befehl "fprem" übersetzt (natürlich über den Umweg String parsen, in
double wandeln, entsprechende RTL Funktion aufrufen, Ergebnis
zurückgeben, in String wandeln etc. ...)
y = x - trunc(x) sind da wohl mehr Operationen weil zuerst die double in
einen Integer gewandelt (raus aus dem Floating point stack) und wieder
zurückgewandelt werden muß (rein in den Floating point stack) und dann
noch eine Subtraktion erfolgen muß.
Aber wer weiß was OS/2 davon sowieso emuliert. Ich erinnere mich, daß
OS/2 auch ohne Floating Point Coprozessor funktioniert ...

Lars

Loading...