// NewSchool, mit .NET-Funktion
double x = Math.Round(1.56789, 2);
// Oldschool1
double y = RoundToQuick(-12345.6789, 3);
private double RoundToQuick(double z, int digits)
{
double p10 = Math.Pow(10.0, (double)digits);
return z >= 0.0 ? (int)(z * p10 + 0.5) / p10 : (int)(z * p10 - 0.5) / p10;
}
// Oldschool2
double z = RoundToFull(-12345.6789, 3);
private double RoundToFull(double z, int digits)
{
double p10 = Math.Pow(10.0, (double)digits);
return z >= 0.0 ? Math.Floor(z * p10 + 0.5) / p10 : Math.Ceiling(z * p10 - 0.5) / p10;
}