Questo articolo è un articolo speculare di traduzione automatica, clicca qui per saltare all'articolo originale.

Vista: 1|Risposta: 0

[Consigli] .NET/C# utilizza il MidpointRounding di Math.Round per l'arrotondamento

[Copiato link]
Pubblicato su46 secondi fa | | | |
Requisiti: Spesso usati per arrotondare e poco sensibili ai requisiti di precisione.

Per arrotondare due decimali, lo sviluppatore ha scritto il seguente codice,
Il codice è molto semplice, sviluppatoriIl risultato effettivo è stato 12,12, contraddicendo il risultato di arrotondamento atteso di 12,13

Il motivo di questo risultato è che Math.Round non utilizza di default la regola di arrotondamento, ma invece fa giri per rendere pari.

Arrotondi fino a cinque per formare una coppia

La cosiddetta arrotondamento da sei a cinque per formare una coppia significa che, dopo aver determinato le cifre significative, se la cifra significativa successiva è minore o uguale a 4, viene arrotondata verso il basso; se è maggiore o uguale a 6, arrotonda verso l'alto di uno. Quando la cifra significativa successiva è 5,

  • Se il numero precedente a 5 è dispari, arrotondi cinque verso l'alto e avanza di uno
  • Se 5 è prima di un numero pari, saltare 5 (0 è pari).

Statisticamente, arrotondare a pari è più accurato che arrotondare cinque, perché quando ci sono molti calcoli, arrotondare ogni cinque a uno può portare a un numero maggiore.

Per esempio:

1.15+1.25+1.35+1.45 = 5.2

Se le cifre significative sono una decimale, il risultato si ottiene usando il principio di arrotondamento

1.2 + 1.3 + 1.4 + 1.5 = 5.4

Il risultato ottenuto arrotondando a cinque pari è

1.2 + 1.2 + 1.4 + 1.4 = 5.2

Questo dimostra che la regola di arrotondamento produce risultati più precisi.

Math.Round

Quindi, come si usa Math.Round per ottenere l'arrotondamento atteso?

In effetti, Math.Round in C# fornisce molti metodi di sovraccarico, inclusi due metodi:
Entrambi i metodi forniscono un terzo parametro chiamato mode, che è una variabile di enumerazione del MidpointRounding con due valori selezionabili

  • AwayFromZero - arrotondamento verso l'alto
  • A pari - arrotondamento a arrotondamento pari

Quindi, se vogliamo un risultato idealmente arrotondato, possiamo usare il seguente codice:
Innumerazione a metà puntoArrotondamento, come mostrato di seguito:



Riferimento:Il login del link ipertestuale è visibile.




Precedente:CON (NOLOCK) ottimizzazione per query EF Core ad alta concorrenza
Disconoscimento:
Tutto il software, i materiali di programmazione o gli articoli pubblicati dalla Code Farmer Network sono destinati esclusivamente all'apprendimento e alla ricerca; I contenuti sopra elencati non devono essere utilizzati per scopi commerciali o illegali, altrimenti gli utenti dovranno sostenere tutte le conseguenze. Le informazioni su questo sito provengono da Internet, e le controversie sul copyright non hanno nulla a che fare con questo sito. Devi eliminare completamente i contenuti sopra elencati dal tuo computer entro 24 ore dal download. Se ti piace il programma, ti preghiamo di supportare software autentico, acquistare la registrazione e ottenere servizi autentici migliori. In caso di violazione, vi preghiamo di contattarci via email.

Mail To:help@itsvse.com