Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

REXX: Gegenstueck zu TRUNC()?

2 views
Skip to first unread message

Lüko Willms

unread,
Apr 29, 2009, 9:01:44 AM4/29/09
to

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

unread,
Apr 29, 2009, 10:43:08 AM4/29/09
to
On Wed, 29 Apr 2009 13:01:44 UTC "Lï¿œko Willms"
<l.wi...@domain.invalid> wrote:

>
> 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

unread,
Apr 29, 2009, 11:33:27 AM4/29/09
to
Am Wed, 29 Apr 2009 14:43:08 UTC, schrieb "Frank Beythien"
<Nospa...@efbe.prima.de> auf de.comp.os.os2.programmer :

> > 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.

-- -----------------------------------------------------

Lars Erdmann

unread,
May 5, 2009, 2:07:09 AM5/5/09
to
L�ko Willms schrieb:

> Am Wed, 29 Apr 2009 14:43:08 UTC, schrieb "Frank Beythien"
> <Nospa...@efbe.prima.de> auf de.comp.os.os2.programmer :
>
>>> 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

0 new messages