Ten artykuł jest lustrzanym artykułem tłumaczenia maszynowego, kliknij tutaj, aby przejść do oryginalnego artykułu.

Widok: 1|Odpowiedź: 0

[Napiwki] .NET/C# wykorzystuje zaokrąglanie punktu środkowego w Math.Round

[Skopiuj link]
Opublikowano46 sekund temu | | | |
Wymagania: Często stosowane do zaokrąglania i nie są bardzo wrażliwe na wymagania precyzyjne.

Aby uzyskać zaokrąglenie o dwa miejsca po przecinku, programista napisał następujący kod,
Kod jest bardzo prosty, deweloperzyRzeczywisty wynik wynosił 12,12, co było sprzeczne z oczekiwanym wynikiem zaokrąglenia 12,13

Powodem tego wyniku jest fakt, że Math.Round domyślnie nie używa reguły zaokrąglenia, lecz zaokrągleń do parzystego.

Zaokrąglić do pięciu, aby utworzyć parę

Tak zwane zaokrąglenie z sześciu do pięciu, aby utworzyć parę, oznacza, że po wyznaczeniu cyfr znaczących, jeśli następna cyfra znacząca jest mniejsza lub równa 4, zaokrągla się ją w dół; jeśli jest większa lub równa 6, zaokrągla się w górę o jeden. Gdy następna cyfra znacząca to 5,

  • Jeśli liczba przed 5 jest nieparzysta, zaokrągli do pięciu i przesunęli się o jeden
  • Jeśli 5 jest przed liczbą parzystą, pomiń 5 (0 jest parzyste).

Statystycznie zaokrąglenie do parzystego jest dokładniejsze niż zaokrąglenie pięć, ponieważ przy wielu obliczeniach zaokrąglenie co pięć do jednego może prowadzić do większej liczby.

Na przykład:

1,15+1,25+1,35+1,45 = 5,2

Jeśli cyfry znaczące są o jedno miejsce po przecinku, wynik uzyskuje się za pomocą zasady zaokrąglenia

1,2 + 1,3 + 1,4 + 1,5 = 5,4

Wynik uzyskany przez zaokrąglenie do pięciu parzystych jest

1,2 + 1,2 + 1,4 + 1,4 = 5,2

Pokazuje to, że reguła zaokrąglenia daje dokładniejsze wyniki.

Math.Round

Jak więc użyć Math.Round, aby osiągnąć oczekiwane zaokrąglenie?

W rzeczywistości Math.Round w C# oferuje wiele metod przeciążenia, w tym dwie metody:
Obie metody dostarczają trzeciego parametru zwanego mode, który jest zmienną enumeracyjną MidpointRounding z dwoma wybieralnymi wartościami

  • AwayFromZero – zaokrąglanie w górę
  • ToEven – zaokrąglenie na parzyste

Jeśli chcemy idealnego, zaokrąglonego wyniku, możemy użyć następującego kodu:
Enumeracja punktu środkowego, jak pokazano poniżej:



Odniesienie:Logowanie do linku jest widoczne.




Poprzedni:Optymalizacja WITH (NOLOCK) dla zapytań rdzeniowych EF o wysokiej równobieżności
Zrzeczenie się:
Całe oprogramowanie, materiały programistyczne lub artykuły publikowane przez Code Farmer Network służą wyłącznie celom edukacyjnym i badawczym; Powyższe treści nie mogą być wykorzystywane do celów komercyjnych ani nielegalnych, w przeciwnym razie użytkownicy ponoszą wszelkie konsekwencje. Informacje na tej stronie pochodzą z Internetu, a spory dotyczące praw autorskich nie mają z nią nic wspólnego. Musisz całkowicie usunąć powyższą zawartość z komputera w ciągu 24 godzin od pobrania. Jeśli spodoba Ci się program, wspieraj oryginalne oprogramowanie, kup rejestrację i korzystaj z lepszych, autentycznych usług. W przypadku naruszenia praw prosimy o kontakt mailowy.

Mail To:help@itsvse.com