Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Usenet -> c.d.o.misc -> Kaufmännisches Runden -> wo ist der Fehler

Kaufmännisches Runden -> wo ist der Fehler

From: Bronke, Nicolas <newsgroup_at_trinity.de>
Date: Fri, 10 Mar 2000 16:05:58 +0100
Message-ID: <38c916de_3@news2.prserv.net>


Ich benutze folgende Funktion zum kaufmännischen Runden. Die funktioniert auch.

// Runden : für das Kaufmännische Runden

Function Runden (const x       : extended;
                 const Stellen : integer ) : extended;
Var Faktor : extended;
begin
  Faktor := int(Power(10,stellen));
  if x = 0 then result := 0 else
  if x < 0
  then result:= -(int(abs(x)*Faktor+0.50)/Faktor)   else result:= (int(abs(x)*Faktor+0.50)/Faktor) end;

Jetzt bin ich aber auf eine Zahlenkombination gestossen, wo es scheinbar nicht funktioniert :((((

Der Betrag 480550 * 1,7205 ergibt 826786,275

Gerundet mit der Funktion auf zwei Nachkommastellen kommt aber trotzdem 826786,27 raus. Das kann man mit dem Debugger probieren. Alle Zahlen sind vom Typ extended.

Hat jemand eine bessere Lösung die auch immer stimmt?

Grüsse
Nicolas Received on Fri Mar 10 2000 - 09:05:58 CST

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US