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 |