System.MidpointRounding, wyliczenie

Ten artykuł zawiera dodatkowe uwagi dotyczące dokumentacji referencyjnej dla tego interfejsu API.

MidpointRounding Użyj wyliczenia z odpowiednimi przeciążeniami Math.Round, MathF.RoundiDecimal.Round, aby zapewnić większą kontrolę nad procesem zaokrąglania.

Istnieją dwie ogólne strategie zaokrąglania — zaokrąglanie do najbliższego i ukierunkowanego zaokrąglania — a każde pole wyliczania bierze udział w dokładnie jednej z tych strategii.

Zaokrąglaj do najbliższej

Pola:

Operacja zaokrągla do najbliższej przyjmuje oryginalną liczbę z niejawną lub określoną precyzją; sprawdza następną cyfrę, która jest w tej precyzji i jedną; metoda zwraca najbliższą liczbę z taką samą dokładnością jak oryginalna liczba. W przypadku liczb dodatnich, jeśli następna cyfra wynosi od 0 do 4, najbliższa liczba jest w kierunku nieskończoności ujemnej. Jeśli następna cyfra wynosi od 6 do 9, najbliższa liczba jest w kierunku dodatniej nieskończoności. W przypadku liczb ujemnych, jeśli następna cyfra wynosi od 0 do 4, najbliższa liczba jest w kierunku dodatniej nieskończoności. Jeśli następna cyfra wynosi od 6 do 9, najbliższa liczba jest w kierunku nieskończoności ujemnej.

Jeśli następna cyfra wynosi od 0 do 4 lub 6 do 9, MidpointRounding.AwayFromZero wartość i MidpointRounding.ToEven nie ma wpływu na wynik operacji zaokrąglania. Jeśli jednak następna cyfra to 5, czyli punkt środkowy między dwoma możliwymi wynikami, a wszystkie pozostałe cyfry są zerowe lub nie ma pozostałych cyfr, najbliższa liczba jest niejednoznaczna. W takim przypadku tryby MidpointRounding zaokrąglone do najbliższego umożliwiają określenie, czy operacja zaokrąglania zwraca najbliższą liczbę od zera, czy najbliższą liczbę parzystą.

W poniższej tabeli przedstawiono wyniki zaokrąglania niektórych liczb ujemnych i dodatnich w połączeniu z trybami zaokrąglania do najbliższych. Precyzja używana do zaokrąglania liczb wynosi zero, co oznacza, że liczba po przecinku dziesiętnych wpływa na operację zaokrąglania. Na przykład dla liczby -2,5 cyfra po przecinku dziesiętnym wynosi 5. Ponieważ ta cyfra jest punktem środkowym MidpointRounding , można użyć wartości, aby określić wynik zaokrąglania. Jeśli AwayFromZero zostanie określony, zwracana jest wartość -3, ponieważ jest to najbliższa liczba z dala od zera z dokładnością do zera. Jeśli ToEven zostanie określony, zwracana jest wartość -2, ponieważ jest to najbliższa liczba parzysta z dokładnością do zera.

Oryginalna liczba AwayFromZero ToEven
3.5 4 4
2.8 3 3
2,5 3 2
2.1 2 2
-2.1 -2 -2
-2.5 –3 -2
-2.8 –3 –3
-3.5 -4 -4

Zaokrąglanie skierowane

Pola:

Operacja zaokrąglania skierowanego przyjmuje oryginalną liczbę z niejawną lub określoną precyzją i zwraca następną najbliższą liczbę w określonym kierunku z taką samą dokładnością jak liczba oryginalna. Tryby kierowane do MidpointRounding kontrolki, w kierunku której jest wykonywana wstępnie zdefiniowana liczba zaokrąglania.

W poniższej tabeli przedstawiono wyniki zaokrąglania niektórych liczb ujemnych i dodatnich w połączeniu z trybami zaokrąglania skierowanego. Precyzja używana do zaokrąglania liczb wynosi zero, co oznacza, że liczba przed przecinkowym punktem dziesiętna ma wpływ na operację zaokrąglania.

Oryginalna liczba ToNegativeInfinity ToPositiveInfinity ToZero
3.5 3 100 3
2.8 2 3 2
2,5 2 3 2
2.1 2 3 2
-2.1 –3 -2 -2
-2.5 –3 -2 -2
-2.8 –3 -2 -2
-3.5 -4 –3 –3