C++ Builder Snippets  

Fließkommazahlen runden:
 
28.10.2001: Vielen Dank an Christian Marquardt für die Erweiterung des Snippets für negative Zahlen !
//---------------------------------------------------------------------------
// Funktion RoundDouble rundet die übergebene Fließkommazahl auf die
// im Parameter iPrecision angegebene Anzahl der Dezimalstellen
//---------------------------------------------------------------------------
// Beispielaufrufe:
// RoundDouble(123.165, 2) liefert 123.17
// RoundDouble(0.0025, 3) liefert 0.003
// RoundDouble(123,34, 1) liefert 123.3
//
// Hinweise:
//
// - Parameter iPrecision kann auch negativ sein. In diesem Fall
//   gilt z.B.: RoundDouble(12345.3,-2)=12300 und RoundDouble(12355.3,-2)=12400
// - beachten Sie die min./max. Grenzwerte für den Datentyp double,
//   wenn Sie mit sehr großen Zahlen oder mit sehr hoher Genauigkeit
//   arbeiten
//---------------------------------------------------------------------------
#include <math.h>   // für Power()
#include <math.hpp> // für floorl()

double RoundDouble(double dValue, int iPrecision)
{
  double dlPower10 = Power(10.0, iPrecision);
  return dValue >= 0 ? floorl(dValue * dlPower10 + 0.5) / dlPower10 :
    ceill(dValue * dlPower10 - 0.5) / dlPower10;
}



© '99-2001 by S. Kreutzmann