Wie rundet man eine ganze Zahl auf die Hunderter?

Wie rundet man eine ganze Zahl auf die Hunderter?

Versuchen Sie es mit Math.Round Methode. So geht's:

Math.Round(76d / 100d, 0) * 100;
Math.Round(121d / 100d, 0) * 100;
Math.Round(9660d / 100d, 0) * 100;

Ich habe vor einiger Zeit eine einfache Erweiterungsmethode geschrieben, um diese Art der Rundung zu verallgemeinern:

public static class MathExtensions
{
    public static int Round(this int i, int nearest)
    {
        if (nearest <= 0 || nearest % 10 != 0)
            throw new ArgumentOutOfRangeException("nearest", "Must round to a positive multiple of 10");

        return (i + 5 * nearest / 10) / nearest * nearest;
    }
}

Es nutzt die ganzzahlige Division, um die nächste Rundung zu finden.

Verwendungsbeispiel:

int example = 152;
Console.WriteLine(example.Round(100)); // round to the nearest 100
Console.WriteLine(example.Round(10)); // round to the nearest 10

Und in Ihrem Beispiel:

Console.WriteLine(76.Round(100)); // 100
Console.WriteLine(121.Round(100)); // 100
Console.WriteLine(9660.Round(100)); // 9700

Probieren Sie diesen Ausdruck aus:

(n + 50) / 100 * 100